Make Shipping Software Painless
Make Shipping Software Painless
Indent gives you a team of purpose-built AI agents that review code, fix errors, query data, and respond to incidents, so you can stay focused on building as fast as you can.
.
. . .. .. .....
. ...
......-...............-..-----------------------+-+-+-+++++
. . ..............................-.-.---------+-+---++++++^~
.------+--+--+++++++++++++++++++++++^+^+^+^^^^^^^^^^^*****;;;n
.----+------++--+++--++--+--++++++++++++++++++^^^^^^^^^^****~n
.----aauzzzvvvzvvvvvvvvvvvvvvvvvvzvvvvvzvnvvvvvvvvvvzaav^***~n
.+---vu188%633633333333333!6!33333!633!63663366666868$o;^***~n
.--+-oz88663!!!!iiiiiiiiiiiiiii!i!!!!!!33!!333336666%88^+**;;o
.++-+n~6uaaaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaua6$++***~o
-++++on3aavvvvazvvvvvvvvvvvvvvnvvvvvvvvvvvvvvvvvvvvaa6$++***;o
.++++ov3aavvzzazvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvza6%++**;~o
-++++oa3zznvvvavvvvvvvvvnvvvvvvvvvvvvvvnvvvvvvvvvvvza68++***;o
.-++++ou3a1v!vvavvvvvvvniuinvvvvvvi!1vni!nvvvvvvvvvvza68^+*;*~o
.-++++o16aavvvvavvvvvvvni!vnvvvvvzunininzuvvvvvvvvvvaa66^+**;~o
.-++++oi8aavvvvavvvvvvv!1znvvnzvvinuav!n!nnnavvvvvvvaa66++*;;~o
.-++++o!6aavvnvavvvnaininvinnin!niu1vn!3nnivvv3nvvvvaa86^+;;;~o
.-^^++o!6uavvvvavvvnvvuavnioo!!nvi!un!iia!3uo!nnnvvvua33^^;;;~o
.-^^^+n!6uavvvvuvvvvvvvvvvvvvvnvvnnnvnvvvvvvvvvvvvvvua88^+;;;~o
--^^^+ni8uuzzzzavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua88^^;;~~o
--^^^^o18uavvvvavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua6$^^;;~~o
--^^^^na8uavzvvaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaaa8%^^;;;~o
--*^^^nz8uuv3!iao33naaaazzzzaauzvvvzvavzvvzvvvzavzazva6%^^;~~~o
--*^*^vv86!ii111uuuuuu111111iiiiiii!!!!!i!!!!!!333366688^^;~~~o
--***^n;868663333!36!!363!636!3866666666668688868386686.^*~~~~o
--*****+--...--....... .--+++++----.. .....--++++++++-+^~~~oo
--**********^^*^*^^^^**^^^^^*^^******************;**;;;;~;~~~oo
-+;***********^^**^^*******************************;;;;;~~~~~oo
++;;;;*;;*****************************************;;;;;;~~~~~oo
++;;;;;***;*************************************;;;;;;~~;~~~ono ------..
++;;;;;*;****************************;********;*;*;;;;;~~~~o~oo .
++;;;;;;**********************nonooooooo~~o~o~n~z1auuaao;;~~ooo ... . . ... ....
+^;~~;;;*;*;*;*;;*********;**;~^^++-------------^..-+**n;;~~ooo ..... . .. . .
+^;;~;;;;;;;*;;*****;*;***;*;;;;;*;;;;*;*;**;;;*+++++++^*;~~ooo .-.. . .
+^;;;o*on;;*****;;**;*;*;;;*;;;;;;;;;;;;;*;;;;;;;;;;;;;~~~~~ooo -. ... . .. .
+^;;;on1u;;;**;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~;~~~~~~~~oozzzzzzaaaazzzvo*.-*. .
+^;;;;;*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~ooo ....---.. .+-...... ..........
+^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~onnv+ ... .+^*;;;;;;;;*;;;;;**
+;ooononnnnnnnnnnnvnnnnvnnvvvvvvvnnvnvnnvnnnnoonnnnonnonoonnnno z~ -+nvvvvvnnnnnnooonn
^~nnvnnvvvvvvvvvvvvvvvvvzzzzzzzzzzzvzzzzzzzvznnnnnnnnnnnonnnnnn z* . ^+ovvnnvnnnnonnonno
+-- ^+- +-- ^-- ^-- *-- ^-+;v~~*au~;^i3;;^68;~+6$*;+%%;;+%$~ovn~88636!!!i!i1uuaaaazzzzvn* *n. ++ovvnnoooooooooooo
.......-11iz*u1uz*auav*aaav;zazn~zaavozaunouuunnauunnauunvaa1nvuu1ov111^nu11iuv++++++^*ii111u336avvvvv; ~- .+^onvvnnnonnnoooooo
....... +.--..1!---ui---a1+--a1^+-uu^+-z1**^z1;;*ai***z!***u!;**a6*;*z6**;z6;~;o+++++++*!3!!1u3!3zvvvvn* .; ..+^onnnnnonooooooooo
......o-^*+^-+au+-+zu++-za++-na++-oa+*-;u+~^;u+;^;1^;^*i^^^*1^^^^!*;^^i;~~;***v;++++++*36!!3iii1izvvvn* *-.-^onvnnnnoonnoooooo
.......i.+*~ono;^vu.+-^u.+^-z***-a~^*.zno;-uaon^uuoo^u1~o;11on;1i~o;11;oovnvno;vn++++++*3666!11naaaazzn+ .-.-*oznznnnnnononnono
....... ;1u1uu1u1uu%uuua6aaaa3aaua3zaaa!vauu!vuu1!v1uu!z1i1!v1uu3au11!u1iiiu1uuuuu++++++^zi18auia6686iz*. ...+ovvnvvnnnnnnnnnnn
.-.--..*333!!nooo!~oo~~~a6~~oo~~o~~~;~~~~~~~~~~~~~~~~~~;~~~~~~o8~~~~~ov%~~~o633ii!++++++^o8663!!zo~;**^+. -++-. n..-*a1366%6668668%66
........-----auuua%uauuaaauaazaaauaaauaaaaauaaaauuuuuuuu1uuaaauu8auu1uuu6uuuu!+++++++++++^^n~;*^^+++++++-.--.-~zz;^+-!-**^^...+^^^^^^^^^^^^^^^^
-+------------------+---------------------------------+------+-++++++++++++++++++++++++++^^o~*^^+++++--+-+----------.~~~ooo..--+++^^+^++^^++^^^
++++++++++++++++++++------------+----++-------+-+++--+-++++++++++++++++++++++++++^^^^^^^^*^~;*^++++--^^^+++--------~~~vnnnn...--+++++++++++++++
.~vvnnnnnooooonooo~~~~~~~~~~~~;~;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~oooooooonnnnnnnzv~;*+++++^^^^^^^^^^^^^;~~~nnnvvnn ..--+++++++++++++++
-;nvzvvvnvnnnnoooo~o~~~~~~~~~o~~~~oo~~o~~ooo~o~~o~o~~~o~~o~~o~o~o~oo~ooonoonnvvvvzzzzzzuaazn~;^++++*~~o~oo~*^^***;onnvvvz1v--------+++++++++++++
*vvvzvnnnoooo~~o~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~;~~~o~oo~;~~~o~ooo~ooooooooooonnnnnnnnvnvvn~*^++++;~ooooooonnonz1vvvz3a$in;...---++++-+++++++++
.....----+--------------------------++--++++-+++++-+-+++++++++++++++++++++++++++++++++++++++-++++++nnvnnz1annvva1v3a#ivo;^+. ..------+++----++-
.......--.-.--.--.....--.--...-...-.-------------.----------------------------------+---------+++++++++-;i$@@8zva@1zo;^+++-......--------------
.... .....................-.....-.......-.--..-----------------------------------------------+-++++++++++++++++++++++++---..... ....-.---------
.
. . .. .. .....
. ...
......-...............-..-----------------------+-+-+-+++++
. . ..............................-.-.---------+-+---++++++^~
.------+--+--+++++++++++++++++++++++^+^+^+^^^^^^^^^^^*****;;;n
.----+------++--+++--++--+--++++++++++++++++++^^^^^^^^^^****~n
.----aauzzzvvvzvvvvvvvvvvvvvvvvvvzvvvvvzvnvvvvvvvvvvzaav^***~n
.+---vu188%633633333333333!6!33333!633!63663366666868$o;^***~n
.--+-oz88663!!!!iiiiiiiiiiiiiii!i!!!!!!33!!333336666%88^+**;;o
.++-+n~6uaaaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaua6$++***~o
-++++on3aavvvvazvvvvvvvvvvvvvvnvvvvvvvvvvvvvvvvvvvvaa6$++***;o
.++++ov3aavvzzazvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvza6%++**;~o
-++++oa3zznvvvavvvvvvvvvnvvvvvvvvvvvvvvnvvvvvvvvvvvza68++***;o
.-++++ou3a1v!vvavvvvvvvniuinvvvvvvi!1vni!nvvvvvvvvvvza68^+*;*~o
.-++++o16aavvvvavvvvvvvni!vnvvvvvzunininzuvvvvvvvvvvaa66^+**;~o
.-++++oi8aavvvvavvvvvvv!1znvvnzvvinuav!n!nnnavvvvvvvaa66++*;;~o
.-++++o!6aavvnvavvvnaininvinnin!niu1vn!3nnivvv3nvvvvaa86^+;;;~o
.-^^++o!6uavvvvavvvnvvuavnioo!!nvi!un!iia!3uo!nnnvvvua33^^;;;~o
.-^^^+n!6uavvvvuvvvvvvvvvvvvvvnvvnnnvnvvvvvvvvvvvvvvua88^+;;;~o
--^^^+ni8uuzzzzavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua88^^;;~~o
--^^^^o18uavvvvavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua6$^^;;~~o
--^^^^na8uavzvvaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaaa8%^^;;;~o
--*^^^nz8uuv3!iao33naaaazzzzaauzvvvzvavzvvzvvvzavzazva6%^^;~~~o
--*^*^vv86!ii111uuuuuu111111iiiiiii!!!!!i!!!!!!333366688^^;~~~o
--***^n;868663333!36!!363!636!3866666666668688868386686.^*~~~~o
--*****+--...--....... .--+++++----.. .....--++++++++-+^~~~oo
--**********^^*^*^^^^**^^^^^*^^******************;**;;;;~;~~~oo
-+;***********^^**^^*******************************;;;;;~~~~~oo
++;;;;*;;*****************************************;;;;;;~~~~~oo
++;;;;;***;*************************************;;;;;;~~;~~~ono ------..
++;;;;;*;****************************;********;*;*;;;;;~~~~o~oo .
++;;;;;;**********************nonooooooo~~o~o~n~z1auuaao;;~~ooo ... . . ... ....
+^;~~;;;*;*;*;*;;*********;**;~^^++-------------^..-+**n;;~~ooo ..... . .. . .
+^;;~;;;;;;;*;;*****;*;***;*;;;;;*;;;;*;*;**;;;*+++++++^*;~~ooo .-.. . .
+^;;;o*on;;*****;;**;*;*;;;*;;;;;;;;;;;;;*;;;;;;;;;;;;;~~~~~ooo -. ... . .. .
+^;;;on1u;;;**;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~;~~~~~~~~oozzzzzzaaaazzzvo*.-*. .
+^;;;;;*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~ooo ....---.. .+-...... ..........
+^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~onnv+ ... .+^*;;;;;;;;*;;;;;**
+;ooononnnnnnnnnnnvnnnnvnnvvvvvvvnnvnvnnvnnnnoonnnnonnonoonnnno z~ -+nvvvvvnnnnnnooonn
^~nnvnnvvvvvvvvvvvvvvvvvzzzzzzzzzzzvzzzzzzzvznnnnnnnnnnnonnnnnn z* . ^+ovvnnvnnnnonnonno
+-- ^+- +-- ^-- ^-- *-- ^-+;v~~*au~;^i3;;^68;~+6$*;+%%;;+%$~ovn~88636!!!i!i1uuaaaazzzzvn* *n. ++ovvnnoooooooooooo
.......-11iz*u1uz*auav*aaav;zazn~zaavozaunouuunnauunnauunvaa1nvuu1ov111^nu11iuv++++++^*ii111u336avvvvv; ~- .+^onvvnnnonnnoooooo
....... +.--..1!---ui---a1+--a1^+-uu^+-z1**^z1;;*ai***z!***u!;**a6*;*z6**;z6;~;o+++++++*!3!!1u3!3zvvvvn* .; ..+^onnnnnonooooooooo
......o-^*+^-+au+-+zu++-za++-na++-oa+*-;u+~^;u+;^;1^;^*i^^^*1^^^^!*;^^i;~~;***v;++++++*36!!3iii1izvvvn* *-.-^onvnnnnoonnoooooo
.......i.+*~ono;^vu.+-^u.+^-z***-a~^*.zno;-uaon^uuoo^u1~o;11on;1i~o;11;oovnvno;vn++++++*3666!11naaaazzn+ .-.-*oznznnnnnononnono
....... ;1u1uu1u1uu%uuua6aaaa3aaua3zaaa!vauu!vuu1!v1uu!z1i1!v1uu3au11!u1iiiu1uuuuu++++++^zi18auia6686iz*. ...+ovvnvvnnnnnnnnnnn
.-.--..*333!!nooo!~oo~~~a6~~oo~~o~~~;~~~~~~~~~~~~~~~~~~;~~~~~~o8~~~~~ov%~~~o633ii!++++++^o8663!!zo~;**^+. -++-. n..-*a1366%6668668%66
........-----auuua%uauuaaauaazaaauaaauaaaaauaaaauuuuuuuu1uuaaauu8auu1uuu6uuuu!+++++++++++^^n~;*^^+++++++-.--.-~zz;^+-!-**^^...+^^^^^^^^^^^^^^^^
-+------------------+---------------------------------+------+-++++++++++++++++++++++++++^^o~*^^+++++--+-+----------.~~~ooo..--+++^^+^++^^++^^^
++++++++++++++++++++------------+----++-------+-+++--+-++++++++++++++++++++++++++^^^^^^^^*^~;*^++++--^^^+++--------~~~vnnnn...--+++++++++++++++
.~vvnnnnnooooonooo~~~~~~~~~~~~;~;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~oooooooonnnnnnnzv~;*+++++^^^^^^^^^^^^^;~~~nnnvvnn ..--+++++++++++++++
-;nvzvvvnvnnnnoooo~o~~~~~~~~~o~~~~oo~~o~~ooo~o~~o~o~~~o~~o~~o~o~o~oo~ooonoonnvvvvzzzzzzuaazn~;^++++*~~o~oo~*^^***;onnvvvz1v--------+++++++++++++
*vvvzvnnnoooo~~o~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~;~~~o~oo~;~~~o~ooo~ooooooooooonnnnnnnnvnvvn~*^++++;~ooooooonnonz1vvvz3a$in;...---++++-+++++++++
.....----+--------------------------++--++++-+++++-+-+++++++++++++++++++++++++++++++++++++++-++++++nnvnnz1annvva1v3a#ivo;^+. ..------+++----++-
.......--.-.--.--.....--.--...-...-.-------------.----------------------------------+---------+++++++++-;i$@@8zva@1zo;^+++-......--------------
.... .....................-.....-.......-.--..-----------------------------------------------+-++++++++++++++++++++++++---..... ....-.---------
Indent is building a suite of AI tools designed to genuinely help developers get things done, faster, with less friction, and more clarity. The mission is pretty simple: reduce the mental overhead that comes with modern software development. That means helping with everything from writing and reviewing code, to understanding data, to managing infrastructure and responding to incidents.
Instead of chasing one-off tools, Indent is building a unified, context-aware system that feels like an extra teammate, one that understands how your stack works, how your team works, and how to actually be helpful. It’s not about replacing devs, it’s about freeing them up to focus on what matters.
Agents for the entire dev lifecycle
Agents for the entire dev lifecycle
From code reviews to incident response, our AI agents handle the workflow so you can focus on what you do best: building.
From code reviews to incident response, our AI agents handle the workflow so you can focus on what you do best: building.
Local Agent
Runs directly on your machine, giving you a simple UI on top of the CLI. It makes everyday tasks feel lighter and more intuitive.
Local Agent
Runs directly on your machine, giving you a simple UI on top of the CLI. It makes everyday tasks feel lighter and more intuitive.
Cloud agent
Delivers the same experience as Local Agent, but powered by the cloud. No setup on your system, just open and get to work.
Cloud agent
Delivers the same experience as Local Agent, but powered by the cloud. No setup on your system, just open and get to work.
Database Agent
Lets you query your data in plain language and see results in seconds. No code, no friction, just answers.
Database Agent
Lets you query your data in plain language and see results in seconds. No code, no friction, just answers.
PR Review Agent
Reviews your pull requests with context that matters. It catches bugs, surfaces insights, and helps your team move faster.
PR Review Agent
Reviews your pull requests with context that matters. It catches bugs, surfaces insights, and helps your team move faster.
Incident Response Agent
Connects with tools like Sentry and Datadog to spot problems early. It guides you through fixes so downtime stays low.
Incident Response Agent
Connects with tools like Sentry and Datadog to spot problems early. It guides you through fixes so downtime stays low.
Code Explorer Agent
Opens up your codebase in a way that feels natural. You can find what you need, understand it quickly, and keep moving.
Code Explorer Agent
Opens up your codebase in a way that feels natural. You can find what you need, understand it quickly, and keep moving.
“Indent has automated and assisted tens of thousands of tasks for our team and that number is only going up. We feel like we are in good hands, for now and the future”
“Indent has automated and assisted tens of thousands of tasks for our team and that number is only going up. We feel like we are in good hands, for now and the future”

Kevin Chu
Business unit lead / ViewSonic
.-=++*+++=:.
.-+++=---. :+#***********: ..
-****- :+=-. :==+#***+@##+***+.....:-=-
**#+**-.::=**-+ .==++*#************...:=-.
-*%@#***: .=+*+% :=++++*#***********-...
.=+******: .+#*:-*. :-+++++*%#*********#@@*
=+*******=*@%*+*+*= .-=++*+=*@%###***##%@@%.
.=+#*******%*+++-=#**- -+%%#%%#+::... .-=++++++=+#@%%%%%%@@@@-
:==+%#****#@%++***%@%#@- =%%@@%%@%% ==- :-=++++++++++++#@@@@@@@=
.++++=*%@@@@@@@@@@@@@@@#=: .-=#%@%*##@%%+..:.:++. .-=++++++++++*****++#####:
=###**+++=++***++++==+++*+. :===#%%#@@*@%%% .=* -=+++++###################=
+##******###*****###########: -++==*%%%%%%%%%%=.+%@= :+**########################*
.####**++***##*###*##******###- -+++==#%##%###%%%@@%%%+ #####*******##*###########**#+
+#######*****************#####=.==+++=-#%####%%%#%%%%%%# .*########********************##-
##############*#**###*########*==++++=--#######%%@%##%%# *###############*#**********####+
=##############################+==++=====--+#%%%%%%%%%#%%. .################################+
+##############################=-==+++++++==-==+#%%%%#+=+*+ =################################+
-###%#############################*******+******++++********=-=*###############################-
.-################################***************************#==*%%###########################*.
..:=###############################**************************#*=-:-*#%%%%#####################-
...::::+*###%#%##############++######**********************#####+=-::::--=+##%%%%%%%%%%%%%%#*=:
...:::::......::-==+***++----=+#######*******************#######+=-::::::::::::-:-----------:.
...:::::::::....:::::::::::--==#########**#***********##########+=--::::::::::::::::::-----::.
...:::::::::.:::::::::::::--==.:#############******############**+---::::::::::::::::------:.
.:::::::::::::::::::::::---=-..*#############################*+*+=---:::::::-::::-::::---:.
.:::::::::::::::::::::::---=-..:*###########################+.+*+=----::::::-::---::::--::.
.::::::::::::::-:::::::---==-. .:-*########################=:.++++=----:::::-----:-:::--:.
::::::::::::::-::::::---===: .::::+##################*+::...=+++=--------------:::::-:.
::::::::::::--::::::---==-. ..:.::::--===++++==--:::::...:.-=++==------------:::::.:. .::.
.::::::::::---:::::---==-: ..::::::::::::::::::::::::::::::==+==-------=-::::::::. =*#=
--:::::::------:::---=-. .:::::::::::::::::::::::::::::.-====------==-:::::::: ::
.=+= :-------------::-==- .:::::::::::---::::::::::::-. .:=-====--==--::::::.-=.. .
.::-. .-------==--=--==:. .-----------==------------: :::======++=----:-: .--:-=.
.:=-=+- .=+====+=+++***:-=..:. .:===*-==++++++++++++===*+-:-.:-:=+-:+*###*######**++**-:*#+***+**+===-. ......
*###***#*#**=-:=*=+#*****###******###*:=-==#*###=====:####*****####*#####+----+=*-=#***##**##**#**##***+:=##*####****++++++++===-
=%%%%%%%###+.==:+##*+*###%%%%########+-+*-+==%%##-#*-##+*#######%@%*#######+:=-*##==*###*##%%%%##*#%####-*##*####********+++++--:.
+@@%%#%%%%%%%%=-##%%%%%%%%%@%%%%%##*=-*#=:#*#%%%%*##=+%%%%%%%%%%%%##%%%%%%#==#++##*:+#%%%%%%%%%%%%%##%##*###%%%%####********+++==-.
+@@@%%@%@@%%%#-=#%%%%%%%%%%%%%%%%%%#%%##-=#%%@%%%###--##%%%@%%%%%%%%%%%@@%+-*%%%%%#:=#%%%%%%%%%%%%%%%%%##%%%%%#######*****++++=-:.
=%%##%%%######==##########%%########%##+-*######%%%%#.*##%%#%%%%%%%%%%%%##.+#%%%%%#+-##%%%###%###############********===+=-:::.
...:-:++==----=********+++***=-****#****###==##%%###%###########.######%#*=##**********#**********++++++++=----:...
.. ...::-===-==++++==-=+***++**+++++***+==-:. .::-----:.:-------:::..
********** *********** *********** *****
****** ** ***** **** **** *****
****** *** *** **** ** *** *****
****** *** ****** ***** ******* ******************** * ****** ****** ***** ****** ****** *****
****** ** ***** **** *** ***** ***** *** ********** **** ***** ************* ***** **** *******
****** ** ***** **** **** ***** ***** ** ************ ***** ***** ****** ***** ***** **** ****
********* ***** ************ ***** ****** ** ********** **** ***** ***** ***** ***** *****
******* ***** ***** ******* ****** * ************ ***** ***** ***** ***** *****
***** ***** ***** * ****** ***** *** **** ****# ***** ***** ***** ***** ******
***** ***** ******* *** **** **** ***** **** ***** **** ***** ***** ***** ******* **
*** ******* ********* ** ** ************* ********* *************** ******* *********
.-=++*+++=:.
.-+++=---. :+#***********: ..
-****- :+=-. :==+#***+@##+***+.....:-=-
**#+**-.::=**-+ .==++*#************...:=-.
-*%@#***: .=+*+% :=++++*#***********-...
.=+******: .+#*:-*. :-+++++*%#*********#@@*
=+*******=*@%*+*+*= .-=++*+=*@%###***##%@@%.
.=+#*******%*+++-=#**- -+%%#%%#+::... .-=++++++=+#@%%%%%%@@@@-
:==+%#****#@%++***%@%#@- =%%@@%%@%% ==- :-=++++++++++++#@@@@@@@=
.++++=*%@@@@@@@@@@@@@@@#=: .-=#%@%*##@%%+..:.:++. .-=++++++++++*****++#####:
=###**+++=++***++++==+++*+. :===#%%#@@*@%%% .=* -=+++++###################=
+##******###*****###########: -++==*%%%%%%%%%%=.+%@= :+**########################*
.####**++***##*###*##******###- -+++==#%##%###%%%@@%%%+ #####*******##*###########**#+
+#######*****************#####=.==+++=-#%####%%%#%%%%%%# .*########********************##-
##############*#**###*########*==++++=--#######%%@%##%%# *###############*#**********####+
=##############################+==++=====--+#%%%%%%%%%#%%. .################################+
+##############################=-==+++++++==-==+#%%%%#+=+*+ =################################+
-###%#############################*******+******++++********=-=*###############################-
.-################################***************************#==*%%###########################*.
..:=###############################**************************#*=-:-*#%%%%#####################-
...::::+*###%#%##############++######**********************#####+=-::::--=+##%%%%%%%%%%%%%%#*=:
...:::::......::-==+***++----=+#######*******************#######+=-::::::::::::-:-----------:.
...:::::::::....:::::::::::--==#########**#***********##########+=--::::::::::::::::::-----::.
...:::::::::.:::::::::::::--==.:#############******############**+---::::::::::::::::------:.
.:::::::::::::::::::::::---=-..*#############################*+*+=---:::::::-::::-::::---:.
.:::::::::::::::::::::::---=-..:*###########################+.+*+=----::::::-::---::::--::.
.::::::::::::::-:::::::---==-. .:-*########################=:.++++=----:::::-----:-:::--:.
::::::::::::::-::::::---===: .::::+##################*+::...=+++=--------------:::::-:.
::::::::::::--::::::---==-. ..:.::::--===++++==--:::::...:.-=++==------------:::::.:. .::.
.::::::::::---:::::---==-: ..::::::::::::::::::::::::::::::==+==-------=-::::::::. =*#=
--:::::::------:::---=-. .:::::::::::::::::::::::::::::.-====------==-:::::::: ::
.=+= :-------------::-==- .:::::::::::---::::::::::::-. .:=-====--==--::::::.-=.. .
.::-. .-------==--=--==:. .-----------==------------: :::======++=----:-: .--:-=.
.:=-=+- .=+====+=+++***:-=..:. .:===*-==++++++++++++===*+-:-.:-:=+-:+*###*######**++**-:*#+***+**+===-. ......
*###***#*#**=-:=*=+#*****###******###*:=-==#*###=====:####*****####*#####+----+=*-=#***##**##**#**##***+:=##*####****++++++++===-
=%%%%%%%###+.==:+##*+*###%%%%########+-+*-+==%%##-#*-##+*#######%@%*#######+:=-*##==*###*##%%%%##*#%####-*##*####********+++++--:.
+@@%%#%%%%%%%%=-##%%%%%%%%%@%%%%%##*=-*#=:#*#%%%%*##=+%%%%%%%%%%%%##%%%%%%#==#++##*:+#%%%%%%%%%%%%%##%##*###%%%%####********+++==-.
+@@@%%@%@@%%%#-=#%%%%%%%%%%%%%%%%%%#%%##-=#%%@%%%###--##%%%@%%%%%%%%%%%@@%+-*%%%%%#:=#%%%%%%%%%%%%%%%%%##%%%%%#######*****++++=-:.
=%%##%%%######==##########%%########%##+-*######%%%%#.*##%%#%%%%%%%%%%%%##.+#%%%%%#+-##%%%###%###############********===+=-:::.
...:-:++==----=********+++***=-****#****###==##%%###%###########.######%#*=##**********#**********++++++++=----:...
.. ...::-===-==++++==-=+***++**+++++***+==-:. .::-----:.:-------:::..
********** *********** *********** *****
****** ** ***** **** **** *****
****** *** *** **** ** *** *****
****** *** ****** ***** ******* ******************** * ****** ****** ***** ****** ****** *****
****** ** ***** **** *** ***** ***** *** ********** **** ***** ************* ***** **** *******
****** ** ***** **** **** ***** ***** ** ************ ***** ***** ****** ***** ***** **** ****
********* ***** ************ ***** ****** ** ********** **** ***** ***** ***** ***** *****
******* ***** ***** ******* ****** * ************ ***** ***** ***** ***** *****
***** ***** ***** * ****** ***** *** **** ****# ***** ***** ***** ***** ******
***** ***** ******* *** **** **** ***** **** ***** **** ***** ***** ***** ******* **
*** ******* ********* ** ** ************* ********* *************** ******* *********