編譯器的自展和自舉、交叉編譯

csuzhucong發表於2020-12-24

目錄

1,第一個鍵盤驅動

2,彙編

3,編譯器

4,編譯器和語言的誕生

5,自舉

6,自展

7,交叉編譯

8,編譯器和直譯器

9,BF自舉編譯器


1,第一個鍵盤驅動

第一個鍵盤驅動是怎麼寫出來的?

用鍵盤寫的?當然不是!

用滑鼠寫的?當然不是!!

第一個鍵盤驅動可能是用機器碼寫的。

PS:打字機的鍵盤很早很早就有了,但是有了鍵盤驅動,才有計算機的鍵盤。

2,彙編

第一個鍵盤驅動不能是彙編寫的嗎?

我猜應該不是,因為組合語言需要鍵盤才能輸入,不像機器語言只需要紙帶。

組合語言又是誰給轉化成機器碼的呢?顯然是機器碼。

3,編譯器

編譯器的工作是把語言轉化成更低階的語言,比如彙編,最後轉化成機器碼後才能執行。

編譯器本身就是個程式,編譯的過程就是一個程式執行的過程。

比如,c語言的編譯器gcc是用c語言寫的,gcc如果是第一個c語言程式的話,那這第一個c語言程式又是怎麼樣執行的呢?

實際上,古老的gcc是Pascal語言寫的,後來的gcc才是c語言寫的,再後來gcc是C++寫的,而且gcc也不是第一個c語言編譯器。

也就是說,除了機器語言之外,所有的語言都需要編譯器轉化(彙編也需要轉化成機器碼)。

4,編譯器和語言的誕生

一門語言的誕生,和它的編譯器的誕生,可以說是同時的,二者緊密相關。

每一門語言的誕生,都是先用其他語言寫這個語言的編譯器,然後才能用這個語言程式設計。

最早的C語言編譯器是由B語言寫的,最早的B語言的編譯器是由組合語言寫的,最早的組合語言的編譯器是由機器語言寫的。

C語言的誕生:

1963年,劍橋大學將ALGOL 60語言發展成為CPL語言。

1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。

Ken Thomson 不滿意 BCPL,於是設計了 B 語言,並且用 BCPL 為 B 語言寫了一個編譯器,然後從這個編譯器開始自舉寫新的 B 語言編譯器。B語言逐漸擴充,最後形成C語言。

因為C語言是慢慢迭代產生的,所以設計並不好,C++是經過設計才突然產生的。

5,自舉

一門語言的編譯器完全是用這個語言本身寫的,而且能夠編譯這門語言的任何程式碼,這就是編譯器的自舉。

自舉是編譯器的里程碑,自舉之後可以做交叉編譯,也可以更加方便做編譯優化。

6,自展

一門語言在演變,語法在擴充,從X1到X2,X3......X10,我們首先得到了用X1寫的X1的編譯器(已經自舉),

理論是我們可以用X1繼續寫出X2的編譯器......X10的編譯器,但是更好的做法或許是:

X1寫出X2的編譯器,X2寫出X2的編譯器,X2寫出X3的編譯器,X3寫出X3的編譯器。。。。。。X10寫出X10的編譯器。

這樣的一個迭代過程,叫編譯器的自展。

以上只是一個例子,實際操作方式可能會有很大差異。

比如,X語言剛誕生的時候可能就已經是X3了,但是我們可以選出X3的語法子集閉包X2,再選出X2的語法子集X1,再按照上述方式自展。

再比如,也有可能是我們先用Y語言寫出X3的編譯器,然後用X3寫出X1的編譯器,再用Y語言寫一個從X2到X1的編譯器,再用Y語言寫一個X4到X2的編譯器,最後用X4寫出X4的編譯器。

也就是說,自舉不是一開始就自舉,而是在自展的過程中才能自舉,在語言發展的過程中一次次自舉。

7,交叉編譯

如果我們想寫一個手機系統上的程式,由於手機的記憶體很小,不太足以執行編譯器,所以我們要在電腦上完成編譯過程,然後直接把在手機上可以執行的機器程式碼拷貝到手機內。這樣一個過程,就叫做交叉編譯。

這個過程是怎麼做到的呢?

將電腦看做是機器a,手機看作是機器b。我們現在手裡擁有的是某語言S在a機器上的編譯器A(S –> A),最終生成一個在a機器上編譯b機器程式碼的編譯器,即A(S –> B)

首先,用高階語言S寫一個自身的編譯器,即S(S –> B),然後將S(S –> B)放入A(S –> A)中編譯,即A(S(S –> B) –> A),這樣就可以得到A(S –> B)

當然交叉編譯也有其它的應用,

比如有時候我們也需要在一臺電腦a上生成另外一臺電腦b上同一個語言S的編譯器,比如在Windows下編譯一個Linux的編譯器。

現在我們有了A(S –> B) 和 S(S –> B)只,需要將S(S –> B)放入A(S –> B)中編譯,即A(S(S –> B) –> B),這樣就可以得到一個B(S –> B)了。

PS:

為什麼不直接編寫一個A(S –> B)?因為A是機器程式碼,寫起來太複雜。

8,編譯器和直譯器

編譯器有多種型別:

A(A->B)、B(A->B)、C(A->B)

直譯器是不需要語言轉化,直接把程式碼當做文字輸入,即可執行。

https://blog.csdn.net/nameofcsdn/article/details/110390006

9,BF自舉編譯器

下面的是一個網友提供的BF語言的自舉編譯器,而這個程式碼卻是用C++生成的,

不過,這個自舉編譯器的正確性有待驗證,

我用自己寫的編譯器把這個程式碼編譯成了C++,然後再執行它去編譯我寫的列印字元的BF程式碼,等了很久沒有輸出。

然後我用我寫的直譯器也試了一遍,還是等不到輸出。

BF自舉編譯器程式碼:

[-]>[-]>[-]>[-]>,[------------------------------------------->>[-]+>[-]<<<[->>[-]+>[-]<<<[->>[-]+>[-
]<<<[->>[-]+>[-]<<<[-------------->>[-]+>[-]<<<[-->>[-]+>[-]<<<[----------------------------->>[-]+>
[-]<<<[-->>[-]+>[-]<<<[>>[-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[<<[-]++++++++>>>>[-]>>[-][-]<<<<<<<<
[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<
+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-][-]>[-]
[-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>+>-][-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<
<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>
[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<
<->>>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>
[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>
>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]>>>[-]<<<[-][-]<[>+<-]>[<+>>>>+<<<-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-
]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>
[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-]<>>>>>[-]<<<<<<<<[>>>
>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>
>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<<<+>>>>[-]+>[-]<<<<<[>>>>[-]>[-]<<<<<[>>>>>+<<<<<-]][-
]>>>>>[<<<<<+>>>>>-]<[<<<+>>>[-]][-]][-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[<<[-]+++++++>>>>[-]>>[-]
[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>
>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>
+>-][-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>+>-][-]>[-]>[-][-]<<<<<<<[>
>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>
>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->
>>>[-]]<<<<<->>>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]>
<<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>
+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]>>>[-]<<<[-][-]<[>+<-]>[<+>>>>+<<<-][-]>[-]>[-][-]<<<<<[>
>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>
[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-]<>>>>>[-]<
<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-
][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<<<+>>>>[-]+>[-]<<<<<[>>>>[-]>[-]<<<<<[>>>>>
+<<<<<-]][-]>>>>>[<<<<<+>>>>>-]<[<<<+>>>[-]][-]][-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[<<[-]++++++>>
>>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<<<<<<[>>>>>>>+<<<
<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<-]
>>>[<<<+>>+>-][-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>+>-][-]>[-]>[-][-
]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[
<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>
-]<[<<<<->>>>[-]]<<<<<->>>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>
>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<
<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]>>>[-]<<<[-][-]<[>+<-]>[<+>>>>+<<<-][-]>[-]>[-]
[-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[
-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-]
<>>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>
[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<<<+>>>>[-]+>[-]<<<<<[>>>>[-]>[-]<
<<<<[>>>>>+<<<<<-]][-]>>>>>[<<<<<+>>>>>-]<[<<<+>>>[-]][-]][-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[<<[
-]+++++>>>>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<<<<<<[>>
>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[
>>>+<<<-]>>>[<<<+>>+>-][-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>+>-][-]>
[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<
-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<
<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<
<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>
[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]>>>[-]<<<[-][-]<[>+<-]>[<+>>>>+<<<-][-
]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+
>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][
-]>[<+>-]<>>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>
+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<<<+>>>>[-]+>[-]<<<<<[>>>
>[-]>[-]<<<<<[>>>>>+<<<<<-]][-]>>>>>[<<<<<+>>>>>-]<[<<<+>>>[-]][-]][-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>
>>-]<[<<[-]++++>>>>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<
<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-
][-]<<<[>>>+<<<-]>>>[<<<+>>+>-][-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>
+>-][-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>
>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>
>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>
>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>
[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]>>>[-]<<<[-][-]<[>+<-]>[<+>>>>
+<<<-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<
<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]
>[<+>-][-]>[<+>-]<>>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<
<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<<<+>>>>[-]+>[-]<
<<<<[>>>>[-]>[-]<<<<<[>>>>>+<<<<<-]][-]>>>>>[<<<<<+>>>>>-]<[<<<+>>>[-]][-]][-]>[-]<<<[>>>+<<<-]][-]>
>>[<<<+>>>-]<[<<[-]+++>>>>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[
-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]
<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-][-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>
>>>>>>>+>-][-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<
<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]
][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<
-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>
-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]>>>[-]<<<[-][-]<[>+<-]>
[<+>>>>+<<<-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-
]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<
<<-<[-]>[<+>-][-]>[<+>-]<>>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>
>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<<<+>>>>[-
]+>[-]<<<<<[>>>>[-]>[-]<<<<<[>>>>>+<<<<<-]][-]>>>>>[<<<<<+>>>>>-]<[<<<+>>>[-]][-]][-]>[-]<<<[>>>+<<<
-]][-]>>>[<<<+>>>-]<[<<[-]++>>>>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]
<[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>
>+>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-][-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<
<<<<+>>>>>>>>+>-][-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-
]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<
<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-
]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>
>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]>>>[-]<<<[-][-]<[
>+<-]>[<+>>>>+<<<-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>
+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->
>[-]]<<<-<[-]>[<+>-][-]>[<+>-]<>>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<
<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<<<+
>>>>[-]+>[-]<<<<<[>>>>[-]>[-]<<<<<[>>>>>+<<<<<-]][-]>>>>>[<<<<<+>>>>>-]<[<<<+>>>[-]][-]][-]>[-]<<<[>
>>+<<<-]][-]>>>[<<<+>>>-]<[<<[-]+>>>>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>
+>>-]<[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<
<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-][-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[
<<<<<<<<<+>>>>>>>>+>-][-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>
[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>
>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+
<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<
<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]>>>[-]<<<[-]
[-]<[>+<-]>[<+>>>>+<<<-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<
[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<
[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-]<>>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>
>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<
<<<<+>>>>[-]+>[-]<<<<<[>>>>[-]>[-]<<<<<[>>>>>+<<<<<-]][-]>>>>>[<<<<<+>>>>>-]<[<<<+>>>[-]][-]]<<,][-]
>>>>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<<<<<<[>>>>>>>+<
<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<
-]>>>[<<<+>>+>-][-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>+>-][-]>[-]>[-]
[-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>
>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>
>>-]<[<<<<->>>>[-]]<<<<<->>>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<
+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<
<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]>>>[-]<<<[-][-]<[>+<-]>[<+>>>>+<<<-][-]>[-]>[
-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+
>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>
-]<>>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<
+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<<<+>>>>[-]+>[-]<<<<<[>>>>[-]>[-
]<<<<<[>>>>>+<<<<<-]][-]>>>>>[<<<<<+>>>>>-]<[<<<+>>>[-]]>>[-]>>[-][-]<<<<<<<<<<[>>>>>>>>>>+<<<<<<<<<
<-]>>>>>>>>>>[<<<<<<<<<<+>>>>>>>>+>>-]<[-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+
>>>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-]>[-]>[
-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-
]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<
<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>
>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<
[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]<[-]>[-][-]>>>[<<<+>>>-]<<<[>>>+<<<<+>-][-]>[-]>[-
][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>
[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-
][-]>[<+>-]<>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>
>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<[-]>>>>[-][-]>>>>[<<<<+
>>>>-]<<<<[>>>>+<<<<<<<<+>>>>-]<<<<[->>[-]+>[-]<<<[->>[-]+>[-]<<<[->>[-]+>[-]<<<[->>[-]+>[-]<<<[->>[
-]+>[-]<<<[->>[-]+>[-]<<<[->>[-]+>[-]<<<[->>[-]+>[-]<<<[>>[-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[>>[
-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<
<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>
[<<<+>>+>-]>[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<
<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-
]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>
>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]
][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]<[-]>[-][-]>>>[<<<+>>>-]<<<[>>>+<
<<<+>-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[
<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-
]>[<+>-][-]>[<+>-][-]>[<+>-]<>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<
-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<[-]>>>
>[-][-]>>>>[<<<<+>>>>-]<<<<[>>>>+<<<<<<<<+>>>>-]<<[-]+>[-]<<<[>[-]+[>[-]+>[-]<<<<<<<[>>>>>>[-]>[-]<<
<<<<<[>>>>>>>+<<<<<<<-]][-]>>>>>>>[<<<<<<<+>>>>>>>-]<[<<<<<->>>>>[-]]<<<<<<->>>>>>>>[-]>>[-][-]<<<<<
<<<<<[>>>>>>>>>>+<<<<<<<<<<-]>>>>>>>>>>[<<<<<<<<<<+>>>>>>>>+>>-]<[-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<
<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>
+<<<-]>>>[<<<+>>+>-]>[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[
-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>
>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-
][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-
]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]<[-]>[-][-]>>>[<<<+>>>-]
<<<[>>>+<<<<+>-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<
<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-
]]<<<-<[-]>[<+>-][-]>[<+>-][-]>[<+>-]<>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>
>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<
<<<[-]>>>>[-][-]>>>>[<<<<+>>>>-]<<<<[>>>>+<<<<<<<<+>>>>-]<<<<------->>[-]+>[-]<<<[->>[-]+>[-]<<<[>>[
-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[<+>[-]][-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[<->[-]]<]>[-]>[-
]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[[-]][-]][-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[>>[-]>>[-][-]<<<<<<<
<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<
<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-]>[-]>[
-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-
]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<
<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>
>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<
[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]<[-]>[-][-]>>>[<<<+>>>-]<<<[>>>+<<<<+>-][-]>[-]>[-
][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>
[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-
][-]>[<+>-]<>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>
>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<[-]>>>>[-][-]>>>>[<<<<+
>>>>-]<<<<[>>>>+<<<<<<<<+>>>>-]<<[-]+>[-]<<<[>>[-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[<[-]+[<<<<<+>>
>>>>[-]+>[-]<<<<<<<[>>>>>>[-]>[-]<<<<<<<[>>>>>>>+<<<<<<<-]][-]>>>>>>>[<<<<<<<+>>>>>>>-]<[<<<<<+>>>>>
[-]]>>[-]>>[-][-]<<<<<<<<<<[>>>>>>>>>>+<<<<<<<<<<-]>>>>>>>>>>[<<<<<<<<<<+>>>>>>>>+>>-]<[-]>[-][-]<<<
<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+
>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-]>[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>
>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>
>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>[-]<[>+<-][-]<[>+
<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>
>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]<[
-]>[-][-]>>>[<<<+>>>-]<<<[>>>+<<<<+>-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]]
[-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>
>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-][-]>[<+>-]<>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>
[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>
>+>-]<[<+>[-]]<]<<<<<<<<<[-]>>>>[-][-]>>>>[<<<<+>>>>-]<<<<[>>>>+<<<<<<<<+>>>>-]<<<<------->>[-]+>[-]
<<<[->>[-]+>[-]<<<[>>[-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[<->[-]][-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>
>>-]<[<+>[-]]<]>[-]][-]][-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[<<<<+>>>>[-]+>[-]<<<<<[>>>>[-]>[-]<<<
<<[>>>>>+<<<<<-]][-]>>>>>[<<<<<+>>>>>-]<[<<<+>>>[-]][-]][-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[[-]+>
[-]<<<<<[>>>>[-]>[-]<<<<<[>>>>>+<<<<<-]][-]>>>>>[<<<<<+>>>>>-]<[<<<->>>[-]]<<<<->>>>[-]][-]>[-]<<<[>
>>+<<<-]][-]>>>[<<<+>>>-]<[>>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-
]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>
>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-]>[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>
>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>
>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>[-]<[>+<-][-]<[>+<
-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>
>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]<[-
]>[-][-]>>>[<<<+>>>-]<<<[>>>+<<<<+>-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][
-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>
[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-][-]>[<+>-]<>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[
-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>
+>-]<[<+>[-]]<]<<<<<<<<<[-]>>>>[-][-]>>>>[<<<<+>>>>-]<<<<[>>>>+<<<<<<<<+>>>>-]<<<<.>>[-]][-]>[-]<<<[
>>>+<<<-]][-]>>>[<<<+>>>-]<[>>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[
-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+
>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-]>[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>
>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>
>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>[-]<[>+<-][-]<[>+
<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>
>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]<[
-]>[-][-]>>>[<<<+>>>-]<<<[>>>+<<<<+>-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]]
[-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>
>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-][-]>[<+>-]<>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>
[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>
>+>-]<[<+>[-]]<]<<<<<<<<<[-]>>>>[-][-]>>>>[<<<<+>>>>-]<<<<[>>>>+<<<<<<<<+>>>>-]<<<<->>>>[-]>>[-][-]<
<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[
<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-]
[-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>+>-][-]>[-]>[-][-]<<<<<<<[>>>>>
>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>
-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[
-]]<<<<<->>>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[
-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<
<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]>>>[-]<<<[-][-]<[>+<-]>[<+>>>>+<<<-][-]>[-]>[-][-]<<<<<[>>>>>
+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<
<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-]<>>>>>[-]<<<<<
<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]
<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<[-]][-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+>>>-]<[<<,>>>
>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<<<<<<[>>>>>>>+<<<<
<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<-]>
>>[<<<+>>+>-][-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>+>-][-]>[-]>[-][-]
<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<
<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-
]<[<<<<->>>>[-]]<<<<<->>>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>
>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<
<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]>>>[-]<<<[-][-]<[>+<-]>[<+>>>>+<<<-][-]>[-]>[-][
-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-
]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-]<
>>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[
-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<[-]][-]>[-]<<<[>>>+<<<-]][-]>>>[<<<+
>>>-]<[>>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<<<<<<[>>>>
>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>
>+<<<-]>>>[<<<+>>+>-]>[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>
[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>
>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<
-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>
-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]<[-]>[-][-]>>>[<<<+>>>-
]<<<[>>>+<<<<+>-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<
<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[
-]]<<<-<[-]>[<+>-][-]>[<+>-][-]>[<+>-]<>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>
>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<
<<<<[-]>>>>[-][-]>>>>[<<<<+>>>>-]<<<<[>>>>+<<<<<<<<+>>>>-]<<<<+>>>>[-]>>[-][-]<<<<<<<<[>>>>>>>>+<<<<
<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>+>>-]<[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-][-]
>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-][-]>[-][-]<<<<<<<<<[>
>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>+>-][-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<
<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]
<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-]<[<<<<->>>>[-]]<<<<<->>>>>[-]<[>+
<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<<[-]>[-]>[-][-]<<<<<<<[
>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<<<<<<+>>
>>>+>-]<[<+>[-]]<]>>>[-]<<<[-][-]<[>+<-]>[<+>>>>+<<<-][-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>
>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<[>>>[-]>[-]<<<<[>>
>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-]<>>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<
-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[
<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<[-]]<<<<<<+>>>>>>[-]+>[-]<<<<<<<[>>>>>>[-]>[-]<<<<<<<[>>>>>>>+<<<<<<<-
]][-]>>>>>>>[<<<<<<<+>>>>>>>-]<[<<<<<+>>>>>[-]]>>[-]>>[-][-]<<<<<<<<<<[>>>>>>>>>>+<<<<<<<<<<-]>>>>>>
>>>>[<<<<<<<<<<+>>>>>>>>+>>-]<[-]>[-][-]<<<<<<<<<[>>>>>>>>>+<<<<<<<<<-]>>>>>>>>>[<<<<<<<<<+>>>>>>>>+
>-][-]>>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>+>>-]<[-]>[-][-]<<<[>>>+<<<-]>>>[<<<+>>+>-]>[-]>[-]>[-][-]
<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[<
<<<<<+>>>>>+>-]<[<+>[-]]<[[-]+>[-]<<<<<<[>>>>>[-]>[-]<<<<<<[>>>>>>+<<<<<<-]][-]>>>>>>[<<<<<<+>>>>>>-
]<[<<<<->>>>[-]]<<<<<->>>>[-]<[>+<-][-]<[>+<-][-]<[>+<-][-]<[>+<-][-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]><<
<[-]>[-]>[-][-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>+>-]<[<+>[-]][-]>[-][-]<<<<<<[>>>>>>+<
<<<<<-]>>>>>>[<<<<<<+>>>>>+>-]<[<+>[-]]<]<[-]>[-][-]>>>[<<<+>>>-]<<<[>>>+<<<<+>-][-]>[-]>[-][-]<<<<<
[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<[[-]
+>[-]<<<<[>>>[-]>[-]<<<<[>>>>+<<<<-]][-]>>>>[<<<<+>>>>-]<[<<->>[-]]<<<-<[-]>[<+>-][-]>[<+>-][-]>[<+>
-]<>>>>[-]<<<<<<<<[>>>>>>>>+<<<<<<<<-]>>>>>[-]>[-]>[-][-]<<<<<[>>>>>+<<<<<-]>>>>>[<<<<<+>>>>+>-]<[<+
>[-]][-]>[-][-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>+>-]<[<+>[-]]<]<<<<<<<<<[-]>>>>[-][-]>>>>[<<<<+>>>>-]<<<
<[>>>>+<<<<<<<<+>>>>-]<<<<]
 

相關文章