Submission details
Task:Lukujono
Sender:vulpesomnia
Submission time:2025-11-03 11:14:12 +0200
Language:text
Status:READY
Result:0
Feedback
groupverdictscore
#1ACCEPTED0
Test results
testverdicttimescore
#1ACCEPTED0.00 s0details

Code

# X = INPUT
# W = WHILE LOOP COUNT
# A B C D E F G H I J K L M N O P Q R = BITS (18)
# STUVW XY->Z

# GC = Garbage Collection
#
#

# W = 30 for testing purposes
INCREASE W INCREASE W INCREASE W
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )
REPEAT W TIMES ( INCREASE W )

PRINT X # Starting number of Collatz Conjecture.

# Copy to other variable.
REPEAT X TIMES ( INCREASE Z )


# DECIMAL TO BINARY

# FLOOR(X / 2) Y = QUOTIENT, R = REMAINDER
INCREASE R
REPEAT X TIMES (
    REPEAT R TIMES ( INCREASE V )
    INCREASE R REPEAT V TIMES ( CLEAR R ) CLEAR V
    # GETS DIVIDED NUMBER
    REPEAT R TIMES ( INCREASE Y )
    )
REPEAT R TIMES ( INCREASE V ) INCREASE R REPEAT V TIMES ( CLEAR R )
CLEAR V CLEAR X # GC

INCREASE Q
REPEAT Y TIMES (
    REPEAT Q TIMES ( INCREASE V )
    INCREASE Q REPEAT V TIMES ( CLEAR Q ) CLEAR V
    # GETS DIVIDED NUMBER
    REPEAT Q TIMES ( INCREASE X )
    )
REPEAT Q TIMES ( INCREASE V ) INCREASE Q REPEAT V TIMES ( CLEAR Q )
CLEAR V CLEAR Y # GC

INCREASE P
REPEAT X TIMES (
    REPEAT P TIMES ( INCREASE V )
    INCREASE P REPEAT V TIMES ( CLEAR P ) CLEAR V
    # GETS DIVIDED NUMBER
    REPEAT P TIMES ( INCREASE Y )
    )
REPEAT P TIMES ( INCREASE V ) INCREASE P REPEAT V TIMES ( CLEAR P )
CLEAR V CLEAR X # GC

INCREASE O
REPEAT Y TIMES (
    REPEAT O TIMES ( INCREASE V )
    INCREASE O REPEAT V TIMES ( CLEAR O ) CLEAR V
    # GETS DIVIDED NUMBER
    REPEAT O TIMES ( INCREASE X )
    )
REPEAT O TIMES ( INCREASE V ) INCREASE O REPEAT V TIMES ( CLEAR O )
CLEAR V CLEAR Y # GC

INCREASE N
REPEAT X TIMES (
    REPEAT N TIMES ( INCREASE V )
    INCREASE N REPEAT V TIMES ( CLEAR N ) CLEAR V
    # GETS DIVIDED NUMBER
    REPEAT N TIMES ( INCREASE Y )
    )
REPEAT N TIMES ( INCREASE V ) INCREASE N REPEAT V TIMES ( CLEAR N )
CLEAR V CLEAR X # GC

INCREASE M
REPEAT Y TIMES (
    REPEAT M TIMES ( INCREASE V )
    INCREASE M REPEAT V TIMES ( CLEAR M ) CLEAR V
    # GETS DIVIDED NUMBER
    REPEAT M TIMES ( INCREASE X )
    )
REPEAT M TIMES ( INCREASE V ) INCREASE M REPEAT V TIMES ( CLEAR M )
CLEAR V CLEAR Y # GC

INCREASE L
REPEAT X TIMES (
    REPEAT L TIMES ( INCREASE V )
    INCREASE L REPEAT V TIMES ( CLEAR L ) CLEAR V
    # GETS DIVIDED NUMBER
    REPEAT L TIMES ( INCREASE Y )
    )
REPEAT L TIMES ( INCREASE V ) INCREASE L REPEAT V TIMES ( CLEAR L )
CLEAR V CLEAR X # GC

INCREASE K
REPEAT Y TIMES (
    REPEAT K TIMES ( INCREASE V )
    INCREASE K REPEAT V TIMES ( CLEAR K ) CLEAR V
    # GETS DIVIDED NUMBER
    REPEAT K TIMES ( INCREASE X )
    )
REPEAT K TIMES ( INCREASE V ) INCREASE K REPEAT V TIMES ( CLEAR K )
CLEAR V CLEAR Y # GC

INCREASE J
REPEAT X TIMES (
    REPEAT J TIMES ( INCREASE V )
    INCREASE J REPEAT V TIMES ( CLEAR J ) CLEAR V
    # GETS DIVIDED NUMBER
    REPEAT J TIMES ( INCREASE Y )
    )
REPEAT J TIMES ( INCREASE V ) INCREASE J REPEAT V TIMES ( CLEAR J )
CLEAR V CLEAR X # GC

INCREASE I
REPEAT Y TIMES (
    REPEAT I TIMES ( INCREASE V )
    INCREASE I REPEAT V TIMES ( CLEAR I ) CLEAR V
    # GETS DIVIDED NUMBER
    REPEAT I TIMES ( INCREASE X )
    )
REPEAT I TIMES ( INCREASE V ) INCREASE I REPEAT V TIMES ( CLEAR I )
CLEAR V CLEAR Y # GC

# Binary representation
#PRINT A
#PRINT B
#PRINT C
#PRINT D
#PRINT E
#PRINT F
#PRINT G
#PRINT H
#PRINT I
#PRINT J
#PRINT K
#PRINT L
#PRINT M
#PRINT N
#PRINT O
#PRINT P
#PRINT Q
#PRINT R

# Main loop
REPEAT W TIMES (
  # this could be turned into a binary check: if Z == 1.
  INCREASE T
  REPEAT Z TIMES ( # At max this uses 4 million cmds.
    REPEAT U TIMES (
      CLEAR T
    )
    INCREASE U
  )
  CLEAR U # GC 
  REPEAT T TIMES ( INCREASE U ) INCREASE T REPEAT U TIMES ( CLEAR T )
  CLEAR U # GC
  # IF Z != 1:
  REPEAT T TIMES (
    CLEAR T # GC
    INCREASE X
    REPEAT R TIMES (
      CLEAR X
      #Z = 3Z + 1 (bitwise)
      # 3*Z

      REPEAT Q TIMES ( INCREASE Y ) REPEAT R TIMES ( INCREASE Q ) REPEAT U TIMES ( INCREASE Q )
      REPEAT Q TIMES ( CLEAR Q INCREASE Q CLEAR U REPEAT V TIMES ( CLEAR Q CLEAR U INCREASE U REPEAT T TIMES ( INCREASE Q ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T # GC

      REPEAT P TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE P ) REPEAT U TIMES ( INCREASE P )
      REPEAT P TIMES ( CLEAR P INCREASE P CLEAR U REPEAT V TIMES ( CLEAR P CLEAR U INCREASE U REPEAT T TIMES ( INCREASE P ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR Y # GC

      REPEAT O TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE O ) REPEAT U TIMES ( INCREASE O )
      REPEAT O TIMES ( CLEAR O INCREASE O CLEAR U REPEAT V TIMES ( CLEAR O CLEAR U INCREASE U REPEAT T TIMES ( INCREASE O ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR S # GC

      REPEAT N TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE N ) REPEAT U TIMES ( INCREASE N )
      REPEAT N TIMES ( CLEAR N INCREASE N CLEAR U REPEAT V TIMES ( CLEAR N CLEAR U INCREASE U REPEAT T TIMES ( INCREASE N ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR Y # GC

      REPEAT M TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE M ) REPEAT U TIMES ( INCREASE M )
      REPEAT M TIMES ( CLEAR M INCREASE M CLEAR U REPEAT V TIMES ( CLEAR M CLEAR U INCREASE U REPEAT T TIMES ( INCREASE M ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR S # GC

      REPEAT L TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE L ) REPEAT U TIMES ( INCREASE L )
      REPEAT L TIMES ( CLEAR L INCREASE L CLEAR U REPEAT V TIMES ( CLEAR L CLEAR U INCREASE U REPEAT T TIMES ( INCREASE L ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR Y # GC

      REPEAT K TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE K ) REPEAT U TIMES ( INCREASE K )
      REPEAT K TIMES ( CLEAR K INCREASE K CLEAR U REPEAT V TIMES ( CLEAR K CLEAR U INCREASE U REPEAT T TIMES ( INCREASE K ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR S # GC

      REPEAT J TIMES ( INCREASE S ) REPEAT S TIMES ( INCREASE J ) REPEAT U TIMES ( INCREASE J )
      REPEAT J TIMES ( CLEAR J INCREASE J CLEAR U REPEAT V TIMES ( CLEAR J CLEAR U INCREASE U REPEAT T TIMES ( INCREASE J ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR Y # GC

      REPEAT I TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE I ) REPEAT U TIMES ( INCREASE I )
      REPEAT I TIMES ( CLEAR I INCREASE I CLEAR U REPEAT V TIMES ( CLEAR I CLEAR U INCREASE U REPEAT T TIMES ( INCREASE I ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR S # GC

      REPEAT H TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE H ) REPEAT U TIMES ( INCREASE H )
      REPEAT H TIMES ( CLEAR H INCREASE H CLEAR U REPEAT V TIMES ( CLEAR H CLEAR U INCREASE U REPEAT T TIMES ( INCREASE H ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR Y # GC

      REPEAT G TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE G ) REPEAT U TIMES ( INCREASE G )
      REPEAT G TIMES ( CLEAR G INCREASE G CLEAR U REPEAT V TIMES ( CLEAR G CLEAR U INCREASE U REPEAT T TIMES ( INCREASE G ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR S # GC

      REPEAT F TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE F ) REPEAT U TIMES ( INCREASE F )
      REPEAT F TIMES ( CLEAR F INCREASE F CLEAR U REPEAT V TIMES ( CLEAR F CLEAR U INCREASE U REPEAT T TIMES ( INCREASE F ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR Y # GC

      REPEAT E TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE E ) REPEAT U TIMES ( INCREASE E )
      REPEAT E TIMES ( CLEAR E INCREASE E CLEAR U REPEAT V TIMES ( CLEAR E CLEAR U INCREASE U REPEAT T TIMES ( INCREASE E ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR S # GC

      REPEAT D TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE D ) REPEAT U TIMES ( INCREASE D )
      REPEAT D TIMES ( CLEAR D INCREASE D CLEAR U REPEAT V TIMES ( CLEAR D CLEAR U INCREASE U REPEAT T TIMES ( INCREASE D ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR Y # GC

      REPEAT C TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE C ) REPEAT U TIMES ( INCREASE C )
      REPEAT C TIMES ( CLEAR C INCREASE C CLEAR U REPEAT V TIMES ( CLEAR C CLEAR U INCREASE U REPEAT T TIMES ( INCREASE C ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR S # GC

      REPEAT B TIMES ( INCREASE S ) REPEAT Y TIMES ( INCREASE B ) REPEAT U TIMES ( INCREASE B )
      REPEAT B TIMES ( CLEAR B INCREASE B CLEAR U REPEAT V TIMES ( CLEAR B CLEAR U INCREASE U REPEAT T TIMES ( INCREASE B ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR Y # GC

      REPEAT A TIMES ( INCREASE Y ) REPEAT S TIMES ( INCREASE A ) REPEAT U TIMES ( INCREASE A )
      REPEAT A TIMES ( CLEAR A INCREASE A CLEAR U REPEAT V TIMES ( CLEAR A CLEAR U INCREASE U REPEAT T TIMES ( INCREASE A ) CLEAR T INCREASE T ) INCREASE V )
      CLEAR V CLEAR T CLEAR S # GC

      # +1
      # U-variable will be carryover.
      INCREASE R
      REPEAT R TIMES ( REPEAT V TIMES ( INCREASE U CLEAR R ) INCREASE V )
      CLEAR V # GC
      REPEAT U TIMES (
        CLEAR U #GC
        INCREASE Q
        REPEAT Q TIMES ( REPEAT V TIMES ( INCREASE U CLEAR Q ) INCREASE V )
        CLEAR V # GC
        REPEAT U TIMES (
          CLEAR U #GC
          INCREASE P
          REPEAT P TIMES ( REPEAT V TIMES ( INCREASE U CLEAR P ) INCREASE V )
          CLEAR V # GC
          REPEAT U TIMES (
            CLEAR U #GC
            INCREASE O
            REPEAT O TIMES ( REPEAT V TIMES ( INCREASE U CLEAR O ) INCREASE V )
            CLEAR V # GC
            REPEAT U TIMES (
              CLEAR U #GC
              INCREASE N
              REPEAT N TIMES ( REPEAT V TIMES ( INCREASE U CLEAR N ) INCREASE V )
              CLEAR V # GC
              REPEAT U TIMES (
                CLEAR U #GC
                INCREASE M
                REPEAT M TIMES ( REPEAT V TIMES ( INCREASE U CLEAR M ) INCREASE V )
                CLEAR V # GC
                REPEAT U TIMES (
                  CLEAR U #GC
                  INCREASE L
                  REPEAT L TIMES ( REPEAT V TIMES ( INCREASE U CLEAR L ) INCREASE V )
                  CLEAR V # GC
                  REPEAT U TIMES (
                    CLEAR U #GC
                    INCREASE K
                    REPEAT K TIMES ( REPEAT V TIMES ( INCREASE U CLEAR K ) INCREASE V )
                    CLEAR V # GC
                    REPEAT U TIMES (
                      CLEAR U #GC
                      INCREASE J
                      REPEAT J TIMES ( REPEAT V TIMES ( INCREASE U CLEAR J ) INCREASE V )
                      CLEAR V # GC
                      REPEAT U TIMES (
                        CLEAR U #GC
                        INCREASE I
                        REPEAT I TIMES ( REPEAT V TIMES ( INCREASE U CLEAR I ) INCREASE V )
                        CLEAR V # GC
                        REPEAT U TIMES (
                          CLEAR U #GC
                          INCREASE H
                          REPEAT H TIMES ( REPEAT V TIMES ( INCREASE U CLEAR H ) INCREASE V )
                          CLEAR V # GC
                          REPEAT U TIMES (
                            CLEAR U #GC
                            INCREASE G
                            REPEAT G TIMES ( REPEAT V TIMES ( INCREASE U CLEAR G ) INCREASE V )
                            CLEAR V # GC
                            REPEAT U TIMES (
                              CLEAR U #GC
                              INCREASE F
                              REPEAT F TIMES ( REPEAT V TIMES ( INCREASE U CLEAR F ) INCREASE V )
                              CLEAR V # GC
                              REPEAT U TIMES (
                                CLEAR U #GC
                                INCREASE E
                                REPEAT E TIMES ( REPEAT V TIMES ( INCREASE U CLEAR E ) INCREASE V )
                                CLEAR V # GC
                                REPEAT U TIMES (
                                  CLEAR U #GC
                                  INCREASE D
                                  REPEAT D TIMES ( REPEAT V TIMES ( INCREASE U CLEAR D ) INCREASE V )
                                  CLEAR V # GC
                                  REPEAT U TIMES (
                                    CLEAR U #GC
                                    INCREASE C
                                    REPEAT C TIMES ( REPEAT V TIMES ( INCREASE U CLEAR C ) INCREASE V )
                                    CLEAR V # GC
                                    REPEAT U TIMES (
                                      CLEAR U #GC
                                      INCREASE B
                                      REPEAT B TIMES ( REPEAT V TIMES ( INCREASE U CLEAR B ) INCREASE V )
                                      CLEAR V # GC
                                      REPEAT U TIMES (
                                        CLEAR U #GC
                                        INCREASE A
                                        REPEAT A TIMES ( REPEAT V TIMES ( INCREASE U CLEAR A ) INCREASE V )
                                        CLEAR V # GC
                                      )
                                    )
                                  )
                                )
                              )
                            )
                          )
                        )
                      )
                    )
                  )
                )
              )
            )
          )
        )
      )
      CLEAR U #GC is this really needed? I think its needed
    )
    

    # IF NUM % 2 == 0
    REPEAT X TIMES (
      CLEAR X # GC
      # Z = Z/2 (bitwise)
      
      INCREASE V
      REPEAT Q TIMES ( CLEAR V CLEAR R INCREASE R )
      REPEAT V TIMES ( CLEAR R )
      CLEAR V #GC

      INCREASE V
      REPEAT P TIMES ( CLEAR V CLEAR Q INCREASE Q )
      REPEAT V TIMES ( CLEAR Q )
      CLEAR V #GC

      INCREASE V
      REPEAT O TIMES ( CLEAR V CLEAR P INCREASE P )
      REPEAT V TIMES ( CLEAR P )
      CLEAR V #GC

      INCREASE V
      REPEAT N TIMES ( CLEAR V CLEAR O INCREASE O )
      REPEAT V TIMES ( CLEAR O )
      CLEAR V #GC

      INCREASE V
      REPEAT M TIMES ( CLEAR V CLEAR N INCREASE N )
      REPEAT V TIMES ( CLEAR N )
      CLEAR V #GC

      INCREASE V
      REPEAT L TIMES ( CLEAR V CLEAR M INCREASE M )
      REPEAT V TIMES ( CLEAR M )
      CLEAR V #GC

      INCREASE V
      REPEAT K TIMES ( CLEAR V CLEAR L INCREASE L )
      REPEAT V TIMES ( CLEAR L )
      CLEAR V #GC

      INCREASE V
      REPEAT J TIMES ( CLEAR V CLEAR K INCREASE K )
      REPEAT V TIMES ( CLEAR K )
      CLEAR V #GC

      INCREASE V
      REPEAT I TIMES ( CLEAR V CLEAR J INCREASE J )
      REPEAT V TIMES ( CLEAR J )
      CLEAR V #GC

      INCREASE V
      REPEAT H TIMES ( CLEAR V CLEAR I INCREASE I )
      REPEAT V TIMES ( CLEAR I )
      CLEAR V #GC

      INCREASE V
      REPEAT G TIMES ( CLEAR V CLEAR H INCREASE H )
      REPEAT V TIMES ( CLEAR H )
      CLEAR V #GC

      INCREASE V
      REPEAT F TIMES ( CLEAR V CLEAR G INCREASE G )
      REPEAT V TIMES ( CLEAR G )
      CLEAR V #GC

      INCREASE V
      REPEAT E TIMES ( CLEAR V CLEAR F INCREASE F )
      REPEAT V TIMES ( CLEAR F )
      CLEAR V #GC

      INCREASE V
      REPEAT D TIMES ( CLEAR V CLEAR E INCREASE E )
      REPEAT V TIMES ( CLEAR E )
      CLEAR V #GC

      INCREASE V
      REPEAT C TIMES ( CLEAR V CLEAR D INCREASE D )
      REPEAT V TIMES ( CLEAR D )
      CLEAR V #GC

      INCREASE V
      REPEAT B TIMES ( CLEAR V CLEAR C INCREASE C )
      REPEAT V TIMES ( CLEAR C )
      CLEAR V #GC

      #INCREASE V
      #REPEAT A TIMES ( CLEAR V CLEAR B INCREASE B CLEAR A ) # Clears A since its the last bit.
      #REPEAT V TIMES ( CLEAR B )
      #CLEAR V #GC
    )


    # IF NUM % 2 != 0
    
    # TURN BINARY INTO DECIMAL AND PRINT 
    # Number 2
    INCREASE U
    INCREASE U
    
    CLEAR Z
    
    REPEAT A TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT B TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT C TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT D TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT E TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT F TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT G TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT H TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT I TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT J TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT K TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT L TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT M TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT N TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT O TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT P TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT Q TIMES ( INCREASE Z )
    REPEAT Z TIMES ( REPEAT U TIMES ( INCREASE Z ) )
    REPEAT R TIMES ( INCREASE Z )

    PRINT Z
    CLEAR U #GC
  )
)
# Plus one and multiply by three are slightly more complex. BOTH HAVE CARRYOVER

Test details

Test 1 (public)

Verdict: ACCEPTED

input
(empty)

correct output
(empty)

user output
# X = INPUT
# W = WHILE LOOP COUNT
# A B C D E F G H I J K L M N ...

Feedback: 2 tests processed (invalid output)