BrainF*ck

Contributed by Chris Rathman

BrainF*ck Script (oobrain.b)

%% reserve some space for a stack  (note: each stack entry takes two cells ~ value and a walk byte)
>> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
>> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>

%%
%% Object Definition:
%%
%%                      <   object#                                                     >
%%                     <<   function#/step#                                             >>
%%                    <<<   class#                                                      >>>
%%                   <<<<   slot#1   (main!shape(0) | circle!x      | rectangle!x)      >>>>
%%                  <<<<<   slot#2   (main!shape(1) | circle!y      | rectangle!y)      >>>>>
%%                 <<<<<<   slot#3   (main!rect     | circle!radius | rectangle!width)  >>>>>>
%%                <<<<<<<   slot#4   (              |               | rectangle!height) >>>>>>>
%%               <<<<<<<<   slot#5                                                      >>>>>>>>
%%              <<<<<<<<<   reserved                                                    >>>>>>>>>
%%   <<<<<<<<<<<<<<<<<<<<   object length                                               >>>>>>>>>>>>>>>>>>>>
%%

%% auto allocate main root object
>>>>>>>>>>>>   9~20  %% workspace (for previous object)
[-]>           8     %% slot#5
[-]>           7     %% slot#4
[-]>           6     %% slot#3
[-]>           5     %% slot#2
[-]>           4     %% slot#1
[-]>           3     %% class#
[-]>           2     %% function#/step#
[-]>           1     %% object#

%% stack push step#1 for main object
<<<<<<<<<<<<<<<<<<<< [<<]+<+>[>>]<< >>>>>>>>>>>>>>>>>>>>                            %% stack push step#
<<<<<<<<<<<<<<<<<<<< [<<]+<> [>>]<< >>>>>>>>>>>>>>>>>>>>                            %% stack push object#

<<<<<<<<<<<<<<<<<<<< <<[>> >>>>>>>>>>>>>>>>>>>>                                     %% while stack do

   <<<<<<<<<<<<<<<<<<<< [<<] >>                                                     %% stack pull next object#
      <[> [>>] << >>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
   [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>

   <<<<<<<<<<<<<<<<<<<< [<<] >>                                                     %% stack pull next function#/step#
      <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
   [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
   [                                                                                %% walk to next object#n
      >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
      [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
      >>>>>>>>>>>>>>>>>>>>
   -]

   <<[-]>> >[<< <+> >>-]<                                                           %% set function#/step# for the object


   ================================================================================================
   = main process                                                                                 =
   ================================================================================================
   [-]<<<[>>>+>+<<< <-]>>>  >[<<< <+> >>>-]<                                        %% get class#
   >[-] [<->-]< >[-]< [>[-]+<-] >- [[-]<                                            %% IF (class#0)

      %% set to return to the next step# after continue
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]< +                                          %% get step#
      <<<<<<<<<<<<<<<<<<<< [<<]+<++++>    [>>]<< >>>>>>>>>>>>>>>>>>>>               %% stack push step#
      <<<<<<<<<<<<<<<<<<<< [<<]+<[-]>  [>>]<< >>>>>>>>>>>>>>>>>>>>                  %% stack mark spot for step#
      [<<<<<<<<<<<<<<<<<<<< [<<]>+>    [>>]<< >>>>>>>>>>>>>>>>>>>>-]                %% stack push step#
      <<<<<<<<<<<<<<<<<<<< [<<]+<[-]> [>>]<< >>>>>>>>>>>>>>>>>>>>                   %% stack push object#

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % step#1 new shape()                                                                        %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]+ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                        %% IF (function#1)

         %% allocate a new object in the heap
         <[<<<<<<<<<<<<<<<<<<<<]>                                                   %% walk back to root object
         >>>>>>>>>>>>>>>>>>>>                                                       %% skip over first object
         <[>                                                                        %% find free space in the heap
            [-]<[>+>+< <-]> >[< <+> >-]<                                            %% get object#
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<<-]
            >>>>>>>>>>>>>>>>>>>>
         <]>
         <[-]+ >[<+>-]<>                                                            %% object#n
         <<<[-]+>>>                                                                 %% class# rectangle
         [-]<[>+>+< <-]>  >[< <+> >-]<                                              %% get new object#
         <[                                                                         %% walk back to root object
           >[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]<
           <<<<<<<<<<<<<<<<<<<<
         ]>

         %% set local slot# for shape(0)
         [<<<< + >>>> -]                                                            %% set slot# shape(0)

         %% make a function call: shape(0) = new rectangle(x y width height)
         <<<<[>>>>+>+<<<< <-]>>>> >[<<<< <+> >>>>-]<                                %% get shape(0) from slot
         <<<<<<<<<<<<<<<<<<<< [<<]+                                                 %% stack push param# height = 6
            <++++++>
         [>>]<< >>>>>>>>>>>>>>>>>>>>
         <<<<<<<<<<<<<<<<<<<< [<<]+                                                 %% stack push param# width = 5
            <+++++>
         [>>]<< >>>>>>>>>>>>>>>>>>>>
         <<<<<<<<<<<<<<<<<<<< [<<]+                                                 %% stack push param# y = 20
            <++++++++++++++++++++>
         [>>]<< >>>>>>>>>>>>>>>>>>>>
         <<<<<<<<<<<<<<<<<<<< [<<]+                                                 %% stack push param# x = 10
            <++++++++++>
         [>>]<< >>>>>>>>>>>>>>>>>>>>
         <<<<<<<<<<<<<<<<<<<< [<<]+<+>   [>>]<< >>>>>>>>>>>>>>>>>>>>                %% stack push function# rectangle
         <<<<<<<<<<<<<<<<<<<< [<<]+<[-]> [>>]<< >>>>>>>>>>>>>>>>>>>>                %% stack mark spot for object#
         [<<<<<<<<<<<<<<<<<<<< [<<]>+>   [>>]<< >>>>>>>>>>>>>>>>>>>>-]              %% stack push object# shape(0)

         %% allocate a new object in the heap
         <[<<<<<<<<<<<<<<<<<<<<]>                                                   %% walk back to root object
         >>>>>>>>>>>>>>>>>>>>                                                       %% skip over first object
         <[>                                                                        %% find free space in the heap
            [-]<[>+>+< <-]> >[< <+> >-]<                                            %% get object#
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<<-]
            >>>>>>>>>>>>>>>>>>>>
         <]>
         <[-]+ >[<+>-]<>                                                            %% object#n
         <<<[-]++>>>                                                                %% class#
         [-]<[>+>+< <-]>  >[< <+> >-]<                                              %% get new object#
         <[                                                                         %% walk back to root object
           >[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]<
           <<<<<<<<<<<<<<<<<<<<
         ]>

         %% set local slot# for shape(1)
         [<<<<< + >>>>> -]                                                          %% set slot# shape(1)

         %% make a function call: shape(1) = new circle(x y radius)
         <<<<<[>>>>>+>+<<<<< <-]>>>>> >[<<<<< <+> >>>>>-]<                          %% get shape(1) from slot
         <<<<<<<<<<<<<<<<<<<< [<<]+                                                 %% stack push param# radius = 8
            <++++++++>
         [>>]<< >>>>>>>>>>>>>>>>>>>>
         <<<<<<<<<<<<<<<<<<<< [<<]+                                                 %% stack push param# y = 25
            <+++++++++++++++++++++++++>
         [>>]<< >>>>>>>>>>>>>>>>>>>>
         <<<<<<<<<<<<<<<<<<<< [<<]+                                                 %% stack push param# x = 15
            <+++++++++++++++>
         [>>]<< >>>>>>>>>>>>>>>>>>>>
         <<<<<<<<<<<<<<<<<<<< [<<]+<+>   [>>]<< >>>>>>>>>>>>>>>>>>>>                %% stack push function# circle
         <<<<<<<<<<<<<<<<<<<< [<<]+<[-]> [>>]<< >>>>>>>>>>>>>>>>>>>>                %% stack mark spot for object#
         [<<<<<<<<<<<<<<<<<<<< [<<]>+>   [>>]<< >>>>>>>>>>>>>>>>>>>>-]              %% stack push object# shape(1)
      >]<                                                                           %% END IF (function#1)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % step#2 shape!draw()                                                                       %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                       %% IF (function#2)
         %% get the two shapes to process
         <<<<[>>>>+>+<<<< <-]>>>> >[<<<< <+> >>>>-]<                                %% get shape(0) from slot
         [>>>>+<<<<-]                                                               %% push shape(0) in the workspace
         <<<<<[>>>>>+>+<<<<< <-]>>>>> >[<<<<< <+> >>>>>-]<                          %% get shape(1) from slot
         [>>>>>+<<<<<-]                                                             %% push shape(1) in the workspace

         %% make a function call: shape(i)!draw()
         >>>++[-<<<                                                                 %% for i = 1 downto 0
            >>>>[<<<<+>>>>-]<<<<                                                    %% get next shape to process
            <<<<<<<<<<<<<<<<<<<< [<<]+<++++> [>>]<< >>>>>>>>>>>>>>>>>>>>            %% stack push function# draw
            <<<<<<<<<<<<<<<<<<<< [<<]+<[-]>  [>>]<< >>>>>>>>>>>>>>>>>>>>            %% stack mark spot for object#
            [<<<<<<<<<<<<<<<<<<<< [<<]>+>    [>>]<< >>>>>>>>>>>>>>>>>>>>-]          %% stack push object# shape(0)
            >>>>>[<+>-]<<<<<                                                        %% pull down next shape
         >>>]<<<
      >]<                                                                           %% END IF (function#1)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % step#3 shape!rMoveTo()                                                                    %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]+++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                      %% IF (function#3)
         %% get the two shapes to process
         <<<<[>>>>+>+<<<< <-]>>>> >[<<<< <+> >>>>-]<                                %% get shape(0) from slot
         [>>>>+<<<<-]                                                               %% push shape(0) in the workspace
         <<<<<[>>>>>+>+<<<<< <-]>>>>> >[<<<<< <+> >>>>>-]<                          %% get shape(1) from slot
         [>>>>>+<<<<<-]                                                             %% push shape(1) in the workspace

         %% make a function call: shape(i)!rMoveTo(100)
         >>>++[-<<<                                                                 %% for i = 1 downto 0
            >>>>[<<<<+>>>>-]<<<<                                                    %% get next shape to process
            <<<<<<<<<<<<<<<<<<<< [<<]                                               %% stack push param# dy = 100
               <++++[>+++++<-]>[<+++++>-]<>+
            [>>]<< >>>>>>>>>>>>>>>>>>>>
            <<<<<<<<<<<<<<<<<<<< [<<]                                               %% stack push param# dx = 100
               <++++[>+++++<-]>[<+++++>-]<>+
            [>>]<< >>>>>>>>>>>>>>>>>>>>
            <<<<<<<<<<<<<<<<<<<< [<<]+<+++>  [>>]<< >>>>>>>>>>>>>>>>>>>>            %% stack push function# rmoveto
            <<<<<<<<<<<<<<<<<<<< [<<]+<[-]>  [>>]<< >>>>>>>>>>>>>>>>>>>>            %% stack mark spot for object#
            [<<<<<<<<<<<<<<<<<<<< [<<]>+>    [>>]<< >>>>>>>>>>>>>>>>>>>>-]          %% stack push object# shape(0)
            >>>>>[<+>-]<<<<<                                                        %% pull down next shape
         >>>]<<<
      >]<                                                                           %% END IF (function#1)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % step#4 shape!draw()                                                                       %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]++++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                     %% IF (function#4)
         %% get the two shapes to process
         <<<<[>>>>+>+<<<< <-]>>>> >[<<<< <+> >>>>-]<                                %% get shape(0) from slot
         [>>>>+<<<<-]                                                               %% push shape(0) in the workspace
         <<<<<[>>>>>+>+<<<<< <-]>>>>> >[<<<<< <+> >>>>>-]<                          %% get shape(1) from slot
         [>>>>>+<<<<<-]                                                             %% push shape(1) in the workspace

         %% make a function call: shape(i)!draw()
         >>>++[-<<<                                                                 %% for i = 1 downto 0
            >>>>[<<<<+>>>>-]<<<<                                                    %% get next shape to process
            <<<<<<<<<<<<<<<<<<<< [<<]+<++++> [>>]<< >>>>>>>>>>>>>>>>>>>>            %% stack push function# draw
            <<<<<<<<<<<<<<<<<<<< [<<]+<[-]>  [>>]<< >>>>>>>>>>>>>>>>>>>>            %% stack mark spot for object#
            [<<<<<<<<<<<<<<<<<<<< [<<]>+>    [>>]<< >>>>>>>>>>>>>>>>>>>>-]          %% stack push object# shape(0)
            >>>>>[<+>-]<<<<<                                                        %% pull down next shape
         >>>]<<<
      >]<                                                                           %% END IF (function#1)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % step#5 new rect()                                                                         %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]+++++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                    %% IF (function#5)

         %% allocate a new object in the heap
         <[<<<<<<<<<<<<<<<<<<<<]>                                                   %% walk back to root object
         >>>>>>>>>>>>>>>>>>>>                                                       %% skip over first object
         <[>                                                                        %% find free space in the heap
            [-]<[>+>+< <-]> >[< <+> >-]<                                            %% get object#
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<<-]
            >>>>>>>>>>>>>>>>>>>>
         <]>
         <[-]+ >[<+>-]<>                                                            %% object#n
         <<<[-]+>>>                                                                 %% class# rectangle
         [-]<[>+>+< <-]>  >[< <+> >-]<                                              %% get new object#
         <[                                                                         %% walk back to root object
           >[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]<
           <<<<<<<<<<<<<<<<<<<<
         ]>

         %% set local slot# for rect
         [<<<<<< + >>>>>> -]                                                        %% set slot# rect

         %% make a function call: rect = new rectangle(x y width height)
         <<<<<<[>>>>>>+>+<<<<<< <-]>>>>>> >[<<<<<< <+> >>>>>>-]<                    %% get rect from slot#
         <<<<<<<<<<<<<<<<<<<< [<<]+<+++++++++++++++>[>>]<< >>>>>>>>>>>>>>>>>>>>     %% stack push param# height=15
         <<<<<<<<<<<<<<<<<<<< [<<]+<+++++++++++++++>[>>]<< >>>>>>>>>>>>>>>>>>>>     %% stack push param# width=15
         <<<<<<<<<<<<<<<<<<<< [<<]+<>               [>>]<< >>>>>>>>>>>>>>>>>>>>     %% stack push param# y=0
         <<<<<<<<<<<<<<<<<<<< [<<]+<>               [>>]<< >>>>>>>>>>>>>>>>>>>>     %% stack push param# x=0
         <<<<<<<<<<<<<<<<<<<< [<<]+<+>              [>>]<< >>>>>>>>>>>>>>>>>>>>     %% stack push function# circle
         <<<<<<<<<<<<<<<<<<<< [<<]+<[-]>            [>>]<< >>>>>>>>>>>>>>>>>>>>     %% stack mark spot for object#
         [<<<<<<<<<<<<<<<<<<<< [<<]>+>              [>>]<< >>>>>>>>>>>>>>>>>>>>-]   %% stack push object# rect
      >]<                                                                           %% END IF (function#1)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % step#6 rect!setWidth()                                                                    %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]++++++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                   %% IF (function#6)
         %% make a function call: rect!setRadius(radius)
         <<<<<<[>>>>>>+>+<<<<<< <-]>>>>>> >[<<<<<< <+> >>>>>>-]<                    %% get rect from slot#
         <<<<<<<<<<<<<<<<<<<< [<<]+                                                 %% stack push param# radius=30
            <++++++++++++++++++++++++++++++>
         [>>]<< >>>>>>>>>>>>>>>>>>>>
         <<<<<<<<<<<<<<<<<<<< [<<]+<+++++>    [>>]<< >>>>>>>>>>>>>>>>>>>>           %% stack push function# setRadius=30
         <<<<<<<<<<<<<<<<<<<< [<<]+<[-]>      [>>]<< >>>>>>>>>>>>>>>>>>>>           %% stack mark spot for object#
         [<<<<<<<<<<<<<<<<<<<< [<<]>+>        [>>]<< >>>>>>>>>>>>>>>>>>>>-]         %% stack push object# rect
      >]<                                                                           %% END IF (function#1)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % step#7 rect!draw()                                                                        %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]+++++++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                  %% IF (function#7)
         %% make a function call: rect!draw()
         <<<<<<[>>>>>>+>+<<<<<< <-]>>>>>> >[<<<<<< <+> >>>>>>-]<                    %% get shape(0) from slot
         <<<<<<<<<<<<<<<<<<<< [<<]+<++++> [>>]<< >>>>>>>>>>>>>>>>>>>>               %% stack push function# draw
         <<<<<<<<<<<<<<<<<<<< [<<]+<[-]>  [>>]<< >>>>>>>>>>>>>>>>>>>>               %% stack mark spot for object#
         [<<<<<<<<<<<<<<<<<<<< [<<]>+>    [>>]<< >>>>>>>>>>>>>>>>>>>>-]             %% stack push object# rect
      >]<                                                                           %% END IF (function#1)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % step#8 exit()                                                                             %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]++++++++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                 %% IF (function#8)
         <<<<<<<<<<<<<<<<<<<< <<[-]>> >>>>>>>>>>>>>>>>>>>>                          %% kill stack to exit
      >]<                                                                           %% END IF (function#99)

   >]<                                                                              %% END IF (class#0)



   ================================================================================================
   = rectangle class                                                                              =
   ================================================================================================
   [-]<<<[>>>+>+<<< <-]>>>  >[<<< <+> >>>-]<                                        %% get class#
   >[-]+  [<->-]< >[-]< [>[-]+<-] >- [[-]<                                          %% IF (class#1)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % function#1 rectangle(x y width height)                                                    %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]+ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                        %% IF (function#1)
         %% clear the slots
         <<<<[-]>>>>                                                                %% x=0
         <<<<<[-]>>>>>                                                              %% y=0
         <<<<<<[-]>>>>>>                                                            %% width=0
         <<<<<<<[-]>>>>>>>                                                          %% height=0

         %% grab the x value from the stack
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# x
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<+>>>> >-]<                                                         %% set slot# x

         %% grab the y value from the stack
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# y
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<+>>>>> >-]<                                                       %% set slot# y

         %% grab the width value from the stack
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# width
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<<+>>>>>> >-]<                                                     %% set slot# width

         %% grab the height value from the stack
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# height
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<<<+>>>>>>> >-]<                                                   %% set slot# height
      >]<                                                                           %% END IF (function#1)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % function#2 moveTo(x y)                                                                    %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                       %% IF (function#2)
         %% grab the x value from the stack
         <<<<[-]>>>>                                                                %% x=0
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# x
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<+>>>> >-]<                                                         %% set slot# x

         %% grab the y value from the stack
         <<<<<[-]>>>>>                                                              %% y=0
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# y
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<+>>>>> >-]<                                                       %% set slot# y
      >]<                                                                           %% END IF (function#2)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % function#3 rMoveTo(x y)                                                                   %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]+++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                      %% IF (function#3)
         %% grab the x value from the stack
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# x
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<+>>>> >-]<                                                         %% set slot# x

         %% grab the y value from the stack
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# y
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<+>>>>> >-]<                                                       %% set slot# y
      >]<                                                                           %% END IF (function#3)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % function#5 setWidth(width)                                                                %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]+++++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                    %% IF (function#5)
         %% grab the width value from the stack
         <<<<<<[-]>>>>>>                                                            %% width=0
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# width
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<<+>>>>>> >-]<                                                     %% set slot# width
      >]<                                                                           %% END IF (function#5)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % function#6 setHeight(height)                                                              %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]++++++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                   %% IF (function#6)
         %% grab the height value from the stack
         <<<<<<[-]>>>>>>                                                            %% height=0
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# height
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<<<+>>>>>>> >-]<                                                   %% set slot# height
      >]<                                                                           %% END IF (function#5)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % function#4 draw()                                                                         %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]++++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                     %% IF (function#4)
         [-]   #64# >++++++++[<++++++++>-]<  ++++.                                  %% D
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++++++.                    %% R
         [-]   #64# >++++++++[<++++++++>-]<  +.                                     %% A
         [-]   #64# >++++++++[<++++++++>-]<  +++++++++++++++++++++++.               %% W
         [-]   #64# >++++++++[<++++++++>-]<  +++++++++.                             %% I
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++.                        %% N
         [-]   #64# >++++++++[<++++++++>-]<  +++++++.                               %% G
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   #64# >++++++++[<++++++++>-]<  +.                                     %% A
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++++++.                    %% R
         [-]   #64# >++++++++[<++++++++>-]<  +++++.                                 %% E
         [-]   #64# >++++++++[<++++++++>-]<  +++.                                   %% C
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++++++++.                  %% T
         [-]   #64# >++++++++[<++++++++>-]<  +.                                     %% A
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++.                        %% N
         [-]   #64# >++++++++[<++++++++>-]<  +++++++.                               %% G
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++.                          %% L
         [-]   #64# >++++++++[<++++++++>-]<  +++++.                                 %% E
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   #64# >++++++++[<++++++++>-]<  +.                                     %% A
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++++++++.                  %% T
         [-]   #30# >+++++++[<++++++++>-]<   ++.                                    %% :
         [-]   #42# >++++++[<+++++++>-]<     --.                                    %% (
         [-]   <<<<[>>>>+>+<<<< <-]>>>> [<<<< + >>>>-]                              %% x
            >[                                                                      %% output number
               [>+>+<<-]>>[<<+>>-]<                                                 %% dup
               >+++++++++<[>>>+<< [>+>[-]<<-] >[<+>-]                               %% mod10
                  >[<<++++++++++>>-] <<- <-] +++++++++ >[<->-]<
               [>+<-] < [>+<-] < [>+<-] >>>[<<<+>>>-] <                             %% rrot
               >+++++++++< [ >>>+<< [>+>[-]<<-] >[<+>-]                             %% div10
                  >[<<++++++++++>>>+<-] <<- <- ] >>>>[<<<<+>>>>-]<<<< >[-]<
               <+>                                                                  %% inc1
            ]
            <[
               [>+<-]                                                               %% mover
               +++++++[<+++++++>-]<->                                               %% add48
               <.[-]>                                                               %% putc
               >[<<+>>-]<                                                           %% movel2
            <-]
            [-]<<<<[>>>>+>+<<<< <-]>>>> >[<<<< <+> >>>>-]<                          %% get slot# x
            >[-][<->-]< >[-]< [>[-]+<-] >- [[-]<                                    %% IF (x=0)
               [-]>[-]+++++++[<+++++++>-]<-.[-]                                     %% output 0 digit
            >]<                                                                     %% END IF (x=0)
         [-]   #42# >++++++[<+++++++>-]<     ++.                                    %% comma
         [-]   <<<<<[>>>>>+>+<<<<< <-]>>>>> [<<<<< + >>>>>-]                        %% y
            >[                                                                      %% output number
               [>+>+<<-]>>[<<+>>-]<                                                 %% dup
               >+++++++++<[>>>+<< [>+>[-]<<-] >[<+>-]                               %% mod10
                  >[<<++++++++++>>-] <<- <-] +++++++++ >[<->-]<
               [>+<-] < [>+<-] < [>+<-] >>>[<<<+>>>-] <                             %% rrot
               >+++++++++< [ >>>+<< [>+>[-]<<-] >[<+>-]                             %% div10
                  >[<<++++++++++>>>+<-] <<- <- ] >>>>[<<<<+>>>>-]<<<< >[-]<
               <+>                                                                  %% inc1
            ]
            <[
               [>+<-]                                                               %% mover
               +++++++[<+++++++>-]<->                                               %% add48
               <.[-]>                                                               %% putc
               >[<<+>>-]<                                                           %% movel2
            <-]
            [-]<<<<<[>>>>>+>+<<<<< <-]>>>>> >[<<<<< <+> >>>>>-]<                    %% get slot# y
            >[-][<->-]< >[-]< [>[-]+<-] >- [[-]<                                    %% IF (y=0)
               [-]>[-]+++++++[<+++++++>-]<-.[-]                                     %% output 0 digit
            >]<                                                                     %% END IF (y=0)
         [-]   #42# >++++++[<+++++++>-]<     -.                                     %% )
         [-]   #42# >++++++[<+++++++>-]<     ++.                                    %% comma
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   #64# >++++++++[<++++++++>-]<  +++++++++++++++++++++++.               %% W
         [-]   #64# >++++++++[<++++++++>-]<  +++++++++.                             %% I
         [-]   #64# >++++++++[<++++++++>-]<  ++++.                                  %% D
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++++++++.                  %% T
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++.                              %% H
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   <<<<<<[>>>>>>+>+<<<<<< <-]>>>>>> [<<<<<< + >>>>>>-]                  %% width
            >[                                                                      %% output number
               [>+>+<<-]>>[<<+>>-]<                                                 %% dup
               >+++++++++<[>>>+<< [>+>[-]<<-] >[<+>-]                               %% mod10
                  >[<<++++++++++>>-] <<- <-] +++++++++ >[<->-]<
               [>+<-] < [>+<-] < [>+<-] >>>[<<<+>>>-] <                             %% rrot
               >+++++++++< [ >>>+<< [>+>[-]<<-] >[<+>-]                             %% div10
                  >[<<++++++++++>>>+<-] <<- <- ] >>>>[<<<<+>>>>-]<<<< >[-]<
               <+>                                                                  %% inc1
            ]
            <[
               [>+<-]                                                               %% mover
               +++++++[<+++++++>-]<->                                               %% add48
               <.[-]>                                                               %% putc
               >[<<+>>-]<                                                           %% movel2
            <-]
            [-]<<<<<<[>>>>>>+>+<<<<<< <-]>>>>>> >[<<<<<< <+> >>>>>>-]<              %% get slot# width
            >[-][<->-]< >[-]< [>[-]+<-] >- [[-]<                                    %% IF (width=0)
               [-]>[-]+++++++[<+++++++>-]<-.[-]                                     %% output 0 digit
            >]<                                                                     %% END IF (width=0)
         [-]   #42# >++++++[<+++++++>-]<     ++.                                    %% comma
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++.                              %% H
         [-]   #64# >++++++++[<++++++++>-]<  +++++.                                 %% E
         [-]   #64# >++++++++[<++++++++>-]<  +++++++++.                             %% I
         [-]   #64# >++++++++[<++++++++>-]<  +++++++.                               %% G
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++.                              %% H
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++++++++.                  %% T
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   <<<<<<<[>>>>>>>+>+<<<<<<< <-]>>>>>>> [<<<<<<< + >>>>>>>-]            %% width
            >[                                                                      %% output number
               [>+>+<<-]>>[<<+>>-]<                                                 %% dup
               >+++++++++<[>>>+<< [>+>[-]<<-] >[<+>-]                               %% mod10
                  >[<<++++++++++>>-] <<- <-] +++++++++ >[<->-]<
               [>+<-] < [>+<-] < [>+<-] >>>[<<<+>>>-] <                             %% rrot
               >+++++++++< [ >>>+<< [>+>[-]<<-] >[<+>-]                             %% div10
                  >[<<++++++++++>>>+<-] <<- <- ] >>>>[<<<<+>>>>-]<<<< >[-]<
               <+>                                                                  %% inc1
            ]
            <[
               [>+<-]                                                               %% mover
               +++++++[<+++++++>-]<->                                               %% add48
               <.[-]>                                                               %% putc
               >[<<+>>-]<                                                           %% movel2
            <-]
            [-]<<<<<<<[>>>>>>>+>+<<<<<<< <-]>>>>>>> >[<<<<<<< <+> >>>>>>>-]<        %% get slot# height
            >[-][<->-]< >[-]< [>[-]+<-] >- [[-]<                                    %% IF (height=0)
               [-]>[-]+++++++[<+++++++>-]<-.[-]                                     %% output 0 digit
            >]<                                                                     %% END IF (height=0)
         [-]   +++++++++++++.[-]                                                    %% \n
      >]<                                                                           %% END IF (function#4)

   >]<                                                                              %% END IF (class#2)



   ================================================================================================
   = circle class                                                                                 =
   ================================================================================================
   [-]<<<[>>>+>+<<< <-]>>>  >[<<< <+> >>>-]<                                        %% get class#
   >[-]++  [<->-]< >[-]< [>[-]+<-] >- [[-]<                                         %% IF (class#2)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % function#1 circle(x y radius)                                                             %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]+ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                        %% IF (function#1)
         %% clear the slots
         <<<<[-]>>>>                                                                %% x=0
         <<<<<[-]>>>>>                                                              %% y=0
         <<<<<<[-]>>>>>>                                                            %% radius=0

         %% grab the x value from the stack
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# x
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<+>>>> >-]<                                                         %% set slot# x

         %% grab the y value from the stack
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# y
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<+>>>>> >-]<                                                       %% set slot# y

         %% grab the radius value from the stack
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# radius
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<<+>>>>>> >-]<                                                     %% set slot# radius
      >]<                                                                           %% END IF (function#1)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % function#2 moveTo(x y)                                                                    %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                       %% IF (function#2)
         %% grab the x value from the stack
         <<<<[-]>>>>                                                                %% x=0
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# x
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<+>>>> >-]<                                                         %% set slot# x

         %% grab the y value from the stack
         <<<<<[-]>>>>>                                                              %% y=0
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# y
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<+>>>>> >-]<                                                       %% set slot# y
      >]<                                                                           %% END IF (function#2)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % function#3 rMoveTo(x y)                                                                   %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]+++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                      %% IF (function#3)
         %% grab the x value from the stack
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# x
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<+>>>> >-]<                                                         %% set slot# x

         %% grab the y value from the stack
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# y
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<+>>>>> >-]<                                                       %% set slot# y
      >]<                                                                           %% END IF (function#3)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % function#5 setRadius(radius)                                                              %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]+++++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                    %% IF (function#5)
         %% grab the radius value from the stack
         <<<<<<[-]>>>>>>                                                            %% radius=0
         <[>+>+< <-]> >[< <+> >-]<                                                  %% get object#
         <[>[<<<<<<<<<<<<<<<<<<<< + >>>>>>>>>>>>>>>>>>>>-]< <<<<<<<<<<<<<<<<<<<<]>  %% walk back to root object (drag object#)
         <<<<<<<<<<<<<<<<<<<< [<<] >>                                               %% stack pull param# radius
            <[> [>>] << >>>>>>>>>>>>>>>>>>>> >+< <<<<<<<<<<<<<<<<<<<< [<<] >> <-]>
         [-]>> [>>] << >>>>>>>>>>>>>>>>>>>>
         [                                                                          %% walk to object#n (drag param# & object index)
            >[>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]<
            [>>>>>>>>>>>>>>>>>>>> + <<<<<<<<<<<<<<<<<<<< -]
            >>>>>>>>>>>>>>>>>>>>
         -]
         >[< <<<<<<+>>>>>> >-]<                                                     %% set slot# radius
      >]<                                                                           %% END IF (function#5)

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % function#4 draw()                                                                         %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      [-]<<[>>+>+<< <-]>> >[<< <+> >>-]<                                            %% get function#
      >[-]++++ [<->-]< >[-]< [>[-]+<-] >- [[-]<                                     %% IF (function#4)
         [-]   #64# >++++++++[<++++++++>-]<  ++++.                                  %% D
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++++++.                    %% R
         [-]   #64# >++++++++[<++++++++>-]<  +.                                     %% A
         [-]   #64# >++++++++[<++++++++>-]<  +++++++++++++++++++++++.               %% W
         [-]   #64# >++++++++[<++++++++>-]<  +++++++++.                             %% I
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++.                        %% N
         [-]   #64# >++++++++[<++++++++>-]<  +++++++.                               %% G
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   #64# >++++++++[<++++++++>-]<  +.                                     %% A
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   #64# >++++++++[<++++++++>-]<  +++.                                   %% C
         [-]   #64# >++++++++[<++++++++>-]<  +++++++++.                             %% I
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++++++.                    %% R
         [-]   #64# >++++++++[<++++++++>-]<  +++.                                   %% C
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++.                          %% L
         [-]   #64# >++++++++[<++++++++>-]<  +++++.                                 %% E
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   #64# >++++++++[<++++++++>-]<  +.                                     %% A
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++++++++.                  %% T
         [-]   #30# >+++++++[<++++++++>-]<   ++.                                    %% :
         [-]   #42# >++++++[<+++++++>-]<     --.                                    %% (
         [-]   <<<<[>>>>+>+<<<< <-]>>>> [<<<< + >>>>-]                              %% x
            >[                                                                      %% output number
               [>+>+<<-]>>[<<+>>-]<                                                 %% dup
               >+++++++++<[>>>+<< [>+>[-]<<-] >[<+>-]                               %% mod10
                  >[<<++++++++++>>-] <<- <-] +++++++++ >[<->-]<
               [>+<-] < [>+<-] < [>+<-] >>>[<<<+>>>-] <                             %% rrot
               >+++++++++< [ >>>+<< [>+>[-]<<-] >[<+>-]                             %% div10
                  >[<<++++++++++>>>+<-] <<- <- ] >>>>[<<<<+>>>>-]<<<< >[-]<
               <+>                                                                  %% inc1
            ]
            <[
               [>+<-]                                                               %% mover
               +++++++[<+++++++>-]<->                                               %% add48
               <.[-]>                                                               %% putc
               >[<<+>>-]<                                                           %% movel2
            <-]
            [-]<<<<[>>>>+>+<<<< <-]>>>> >[<<<< <+> >>>>-]<                          %% get slot# x
            >[-][<->-]< >[-]< [>[-]+<-] >- [[-]<                                    %% IF (x=0)
               [-]>[-]+++++++[<+++++++>-]<-.[-]                                     %% output 0 digit
            >]<                                                                     %% END IF (x=0)
         [-]   #42# >++++++[<+++++++>-]<     ++.                                    %% comma
         [-]   <<<<<[>>>>>+>+<<<<< <-]>>>>> [<<<<< + >>>>>-]                        %% y
            >[                                                                      %% output number
               [>+>+<<-]>>[<<+>>-]<                                                 %% dup
               >+++++++++<[>>>+<< [>+>[-]<<-] >[<+>-]                               %% mod10
                  >[<<++++++++++>>-] <<- <-] +++++++++ >[<->-]<
               [>+<-] < [>+<-] < [>+<-] >>>[<<<+>>>-] <                             %% rrot
               >+++++++++< [ >>>+<< [>+>[-]<<-] >[<+>-]                             %% div10
                  >[<<++++++++++>>>+<-] <<- <- ] >>>>[<<<<+>>>>-]<<<< >[-]<
               <+>                                                                  %% inc1
            ]
            <[
               [>+<-]                                                               %% mover
               +++++++[<+++++++>-]<->                                               %% add48
               <.[-]>                                                               %% putc
               >[<<+>>-]<                                                           %% movel2
            <-]
            [-]<<<<<[>>>>>+>+<<<<< <-]>>>>> >[<<<<< <+> >>>>>-]<                    %% get slot# y
            >[-][<->-]< >[-]< [>[-]+<-] >- [[-]<                                    %% IF (y=0)
               [-]>[-]+++++++[<+++++++>-]<-.[-]                                     %% output 0 digit
            >]<                                                                     %% END IF (y=0)
         [-]   #42# >++++++[<+++++++>-]<     -.                                     %% )
         [-]   #42# >++++++[<+++++++>-]<     ++.                                    %% comma
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   #64# >++++++++[<++++++++>-]<  ++++++++++++++++++.                    %% R
         [-]   #64# >++++++++[<++++++++>-]<  +.                                     %% A
         [-]   #64# >++++++++[<++++++++>-]<  ++++.                                  %% D
         [-]   #64# >++++++++[<++++++++>-]<  +++++++++.                             %% I
         [-]   #64# >++++++++[<++++++++>-]<  +++++++++++++++++++++.                 %% U
         [-]   #64# >++++++++[<++++++++>-]<  +++++++++++++++++++.                   %% S
         [-]   #30# >+++++[<++++++>-]<       ++.                                    %%
         [-]   <<<<<<[>>>>>>+>+<<<<<< <-]>>>>>> [<<<<<< + >>>>>>-]                  %% radius
            >[                                                                      %% output number
               [>+>+<<-]>>[<<+>>-]<                                                 %% dup
               >+++++++++<[>>>+<< [>+>[-]<<-] >[<+>-]                               %% mod10
                  >[<<++++++++++>>-] <<- <-] +++++++++ >[<->-]<
               [>+<-] < [>+<-] < [>+<-] >>>[<<<+>>>-] <                             %% rrot
               >+++++++++< [ >>>+<< [>+>[-]<<-] >[<+>-]                             %% div10
                  >[<<++++++++++>>>+<-] <<- <- ] >>>>[<<<<+>>>>-]<<<< >[-]<
               <+>                                                                  %% inc1
            ]
            <[
               [>+<-]                                                               %% mover
               +++++++[<+++++++>-]<->                                               %% add48
               <.[-]>                                                               %% putc
               >[<<+>>-]<                                                           %% movel2
            <-]
            [-]<<<<<<[>>>>>>+>+<<<<<< <-]>>>>>> >[<<<<<< <+> >>>>>>-]<              %% get slot# radius
            >[-][<->-]< >[-]< [>[-]+<-] >- [[-]<                                    %% IF (radius=0)
               [-]>[-]+++++++[<+++++++>-]<-.[-]                                     %% output 0 digit
            >]<                                                                     %% END IF (radius=0)
         [-]   +++++++++++++.[-]                                                    %% \n
      >]<                                                                           %% END IF (function#4)

   >]<                                                                              %% END IF (class#2)


   <[<<<<<<<<<<<<<<<<<<<<]>                                                         %% walk back to root object
<<<<<<<<<<<<<<<<<<<< <<]

Output

DRAWING A CIRCLE AT:(15,25), RADIUS 8
DRAWING A RECTANGLE AT:(10,20), WIDTH 5, HEIGHT 6
DRAWING A CIRCLE AT:(115,125), RADIUS 8
DRAWING A RECTANGLE AT:(110,120), WIDTH 5, HEIGHT 6
DRAWING A RECTANGLE AT:(0,0), WIDTH 30, HEIGHT 15

Script with excess comments removed

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

Chris Rathman / Chris.Rathman@tx.rr.com