     call-next-method
     [ clone ] change-H
     [ clone ] change-K ;
-
-<PRIVATE
 
 CONSTANT: a 0
 CONSTANT: b 1

    e H nth-unsafe S1-256 w+
    h H nth-unsafe w+ ; inline

: T2-256 ( H -- T2 )
    [ a swap nth-unsafe S0-256 ]
    [ a swap slice3 maj w+ ] bi ; inline

:: T1-512 ( n M H sha2 -- T1 )
    n M nth-unsafe

    e H nth-unsafe S1-512 w+
    h H nth-unsafe w+ ; inline

:: T2-512 ( H -- T2 )
    a H nth-unsafe S0-512
    a H slice3 maj w+ ; inline

:: update-H ( T1 T2 H -- )
    h g H exchange-unsafe
    g f H exchange-unsafe
    f e H exchange-unsafe
    T1 d H nth-unsafe w+ e H set-nth-unsafe
    d c H exchange-unsafe
    c b H exchange-unsafe
    b a H exchange-unsafe
    T1 T2 w+ a H set-nth-unsafe ; inline

: prepare-message-schedule ( seq sha2 -- w-seq )
    [ word-size>> <groups> [ be> ] map ]
