
/* This file was automatically generated by pclu.*/

#include "pclu_err.h"
#include "pclu_sys.h"


/**** BEGIN CLUSTER time ****/

extern errcode intOPlt();
extern errcode intOPadd();
extern errcode intOPdiv();
extern errcode intOPmod();
extern errcode structOPget_1();
extern errcode structOPget_2();
extern errcode structOPget_5();
extern errcode structOPget_6();
extern errcode structOPget_4();
extern errcode structOPget_3();
extern errcode timeOPget_all();
extern errcode intOPge();
extern errcode intOPsub();
extern errcode timeOPgt();
extern errcode timeOPdo_div();
extern errcode intOPmul();
extern errcode timeOPaverage();
extern errcode intOPle();
extern errcode intOPfrom_to();
extern errcode boolOPnot();
extern errcode intOPequal();
extern errcode timeOPlt();
extern errcode timeOPequal();
extern errcode timeOPle();
extern errcode arrayOPpredict();
extern errcode stringOPindexc();
extern errcode arrayOPaddh();
extern errcode intOPparse();
extern errcode stringOPsubstr();
extern errcode stringOPrest();
extern errcode intOPgt();
extern errcode arrayOPsize();
extern errcode arrayOPaddl();
extern errcode stringOPsize();
extern errcode stringOPappend();
extern errcode stringOPempty();
extern errcode arrayOPset_low();
extern errcode timeOPcreate();
extern errcode arrayOPfetch();
extern errcode timeOPformat();
extern errcode realOPadd();
extern errcode realOPdiv();
extern errcode realOPi2r();
extern errcode realOPmul();
extern errcode intOPunparse();
extern errcode stringOPconcat();
extern errcode pstreamOPtext();
extern errcode timeOPunparse();
extern errcode structOPequal();
extern errcode stringOPencode();
extern errcode timeOPparse();
extern errcode stringOPdecode();
extern errcode structOP_gcd();
extern struct OPS *int_ops;
struct OPS  *struct_days_hours_micros_millis_mins_secs_ops;
CLUREF STR_;
CLUREF STR_bad_040format;
static int time_own_init = 0;
OWN_req time_ownreqs = {0,0};
errcode time_own_init_proc()
{
    errcode err;
    enter_own_init_proc();
        if (time_own_init == 0) {
        add_selector_info("days", 0, int_ops); 
        add_selector_info("hours", 1, int_ops); 
        add_selector_info("micros", 2, int_ops); 
        add_selector_info("millis", 3, int_ops); 
        add_selector_info("mins", 4, int_ops); 
        add_selector_info("secs", 5, int_ops); 
        find_selector_ops("struct", 6, &(struct_days_hours_micros_millis_mins_secs_ops));
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("bad format", CLU_1, CLU_10, &STR_bad_040format);
        time_own_init = 1;
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(err); {signal(ERR_failure);}
        }
    }


/**** BEGIN PROCEDURE create ****/

errcode timeOPcreate(days, hours, mins, secs, millis, micros, ret_1)
CLUREF days;
CLUREF hours;
CLUREF mins;
CLUREF secs;
CLUREF millis;
CLUREF micros;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(12);

  LINE(14);
    {

  LINE(15);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        CLUREF T_3_6;
        CLUREF T_3_7;
        CLUREF T_3_8;
        CLUREF T_3_9;
        CLUREF T_3_10;
        CLUREF T_3_11;
        T_3_6.num = (days.num < 0)? true : false;
        T_3_5.num = T_3_6.num;
        if (!T_3_6.num) {
            T_3_7.num = (hours.num < 0)? true : false;
            T_3_5.num = T_3_7.num;
        }
        T_3_4.num = T_3_5.num;
        if (!T_3_5.num) {
            T_3_8.num = (mins.num < 0)? true : false;
            T_3_4.num = T_3_8.num;
        }
        T_3_3.num = T_3_4.num;
        if (!T_3_4.num) {
            T_3_9.num = (secs.num < 0)? true : false;
            T_3_3.num = T_3_9.num;
        }
        T_3_2.num = T_3_3.num;
        if (!T_3_3.num) {
            T_3_10.num = (millis.num < 0)? true : false;
            T_3_2.num = T_3_10.num;
        }
        T_3_1.num = T_3_2.num;
        if (!T_3_2.num) {
            T_3_11.num = (micros.num < 0)? true : false;
            T_3_1.num = T_3_11.num;
        }
        if (T_3_1.num == true) {

  LINE(17);
            {
            {signal (ERR_bad_format);}}
            }
            }/* end if */

  LINE(18);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        T_3_1.num = 1000;
        err = intOPdiv(micros, T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        T_3_3.num = millis.num + T_3_2.num;
         if ((T_3_3.num > 0 && millis.num < 0 && T_3_2.num < 0) || 
             (T_3_3.num < 0 && millis.num > 0 && T_3_2.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        millis.num = T_3_3.num;
        }

  LINE(19);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = 1000;
        err = intOPmod(micros, T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        micros.num = T_3_2.num;
        }

  LINE(20);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        T_3_1.num = 1000;
        err = intOPdiv(millis, T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        T_3_3.num = secs.num + T_3_2.num;
         if ((T_3_3.num > 0 && secs.num < 0 && T_3_2.num < 0) || 
             (T_3_3.num < 0 && secs.num > 0 && T_3_2.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        secs.num = T_3_3.num;
        }

  LINE(21);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = 1000;
        err = intOPmod(millis, T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        millis.num = T_3_2.num;
        }

  LINE(22);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        T_3_1.num = 60;
        err = intOPdiv(secs, T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        T_3_3.num = mins.num + T_3_2.num;
         if ((T_3_3.num > 0 && mins.num < 0 && T_3_2.num < 0) || 
             (T_3_3.num < 0 && mins.num > 0 && T_3_2.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        mins.num = T_3_3.num;
        }

  LINE(23);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = 60;
        err = intOPmod(secs, T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        secs.num = T_3_2.num;
        }

  LINE(24);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        T_3_1.num = 60;
        err = intOPdiv(mins, T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        T_3_3.num = hours.num + T_3_2.num;
         if ((T_3_3.num > 0 && hours.num < 0 && T_3_2.num < 0) || 
             (T_3_3.num < 0 && hours.num > 0 && T_3_2.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        hours.num = T_3_3.num;
        }

  LINE(25);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = 60;
        err = intOPmod(mins, T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        mins.num = T_3_2.num;
        }

  LINE(26);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        err = intOPdiv(hours, CLU_24, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        T_3_2.num = days.num + T_3_1.num;
         if ((T_3_2.num > 0 && days.num < 0 && T_3_1.num < 0) || 
             (T_3_2.num < 0 && days.num > 0 && T_3_1.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        days.num = T_3_2.num;
        }

  LINE(27);
        {
        CLUREF T_3_1;
        err = intOPmod(hours, CLU_24, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        hours.num = T_3_1.num;
        }

  LINE(28);
        {
        {
        CLUREF T_3_1;
        RecordAlloc(6, T_3_1);
        T_3_1.vec->data[0]  = days.num;
        T_3_1.vec->data[1]  = hours.num;
        T_3_1.vec->data[4]  = mins.num;
        T_3_1.vec->data[5]  = secs.num;
        T_3_1.vec->data[3]  = millis.num;
        T_3_1.vec->data[2]  = micros.num;
        ret_1->num = T_3_1.num;
        }
        {signal (ERR_ok);}}
        }
    goto end_1;
    ex_1:
        if (err == ERR_overflow) {signal(ERR_overflow);}
        else {
            goto ex_0;}
    end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE create ****/


/**** BEGIN PROCEDURE get_days ****/

errcode timeOPget_days(t, ret_1)
CLUREF t;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(33);

  LINE(34);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[0];
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_days ****/


/**** BEGIN PROCEDURE get_hours ****/

errcode timeOPget_hours(t, ret_1)
CLUREF t;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(37);

  LINE(38);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[1];
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_hours ****/


/**** BEGIN PROCEDURE get_minutes ****/

errcode timeOPget_minutes(t, ret_1)
CLUREF t;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(41);

  LINE(42);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[4];
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_minutes ****/


/**** BEGIN PROCEDURE get_seconds ****/

errcode timeOPget_seconds(t, ret_1)
CLUREF t;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(45);

  LINE(46);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[5];
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_seconds ****/


/**** BEGIN PROCEDURE get_millis ****/

errcode timeOPget_millis(t, ret_1)
CLUREF t;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(49);

  LINE(50);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[3];
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_millis ****/


/**** BEGIN PROCEDURE get_micros ****/

errcode timeOPget_micros(t, ret_1)
CLUREF t;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(53);

  LINE(54);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[2];
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_micros ****/


/**** BEGIN PROCEDURE get_all ****/

errcode timeOPget_all(t, ret_1, ret_2, ret_3, ret_4, ret_5, ret_6)
CLUREF t;
CLUREF *ret_1;
CLUREF *ret_2;
CLUREF *ret_3;
CLUREF *ret_4;
CLUREF *ret_5;
CLUREF *ret_6;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(57);

  LINE(58);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[0];
    ret_1->num = T_1_1.num;
    }
    {
    CLUREF T_1_2;
    T_1_2.num = t.vec->data[1];
    ret_2->num = T_1_2.num;
    }
    {
    CLUREF T_1_3;
    T_1_3.num = t.vec->data[4];
    ret_3->num = T_1_3.num;
    }
    {
    CLUREF T_1_4;
    T_1_4.num = t.vec->data[5];
    ret_4->num = T_1_4.num;
    }
    {
    CLUREF T_1_5;
    T_1_5.num = t.vec->data[3];
    ret_5->num = T_1_5.num;
    }
    {
    CLUREF T_1_6;
    T_1_6.num = t.vec->data[2];
    ret_6->num = T_1_6.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_all ****/


/**** BEGIN PROCEDURE add ****/

errcode timeOPadd(t1, t2, ret_1)
CLUREF t1;
CLUREF t2;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF days;
    CLUREF hours;
    CLUREF mins;
    CLUREF secs;
    CLUREF millis;
    CLUREF micros;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(61);

  LINE(62);
    {

  LINE(63);
        {
            {CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            CLUREF T_3_5;
            CLUREF T_3_6;
            err = timeOPget_all(t1, &T_3_1, &T_3_2, &T_3_3, &T_3_4, &T_3_5, &T_3_6);
            if (err != ERR_ok) goto ex_1;
            days.num = T_3_1.num;
            hours.num = T_3_2.num;
            mins.num = T_3_3.num;
            secs.num = T_3_4.num;
            millis.num = T_3_5.num;
            micros.num = T_3_6.num;
            }
            }

  LINE(64);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = t2.vec->data[2];
        T_3_2.num = micros.num + T_3_1.num;
         if ((T_3_2.num > 0 && micros.num < 0 && T_3_1.num < 0) || 
             (T_3_2.num < 0 && micros.num > 0 && T_3_1.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        micros.num = T_3_2.num;
        }

  LINE(65);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = 1000;
        T_3_2.num = (micros.num >= T_3_1.num)? true : false;
        if (T_3_2.num == true) {

  LINE(66);
            {
            CLUREF T_4_1;
            T_4_1.num = millis.num + 1;
             if ((T_4_1.num > 0 && millis.num < 0 && 1 < 0) || 
                 (T_4_1.num < 0 && millis.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            millis.num = T_4_1.num;
            }

  LINE(67);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = 1000;
            T_4_2.num = micros.num - T_4_1.num;
             if ((T_4_2.num >= 0 && micros.num < 0 && (-T_4_1.num) < 0) || 
                 (T_4_2.num <= 0 && micros.num > 0 && (-T_4_1.num) > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            micros.num = T_4_2.num;
            }
            }
            }/* end if */

  LINE(69);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = t2.vec->data[3];
        T_3_2.num = millis.num + T_3_1.num;
         if ((T_3_2.num > 0 && millis.num < 0 && T_3_1.num < 0) || 
             (T_3_2.num < 0 && millis.num > 0 && T_3_1.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        millis.num = T_3_2.num;
        }

  LINE(70);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = 1000;
        T_3_2.num = (millis.num >= T_3_1.num)? true : false;
        if (T_3_2.num == true) {

  LINE(71);
            {
            CLUREF T_4_1;
            T_4_1.num = secs.num + 1;
             if ((T_4_1.num > 0 && secs.num < 0 && 1 < 0) || 
                 (T_4_1.num < 0 && secs.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            secs.num = T_4_1.num;
            }

  LINE(72);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = 1000;
            T_4_2.num = millis.num - T_4_1.num;
             if ((T_4_2.num >= 0 && millis.num < 0 && (-T_4_1.num) < 0) || 
                 (T_4_2.num <= 0 && millis.num > 0 && (-T_4_1.num) > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            millis.num = T_4_2.num;
            }
            }
            }/* end if */

  LINE(74);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = t2.vec->data[5];
        T_3_2.num = secs.num + T_3_1.num;
         if ((T_3_2.num > 0 && secs.num < 0 && T_3_1.num < 0) || 
             (T_3_2.num < 0 && secs.num > 0 && T_3_1.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        secs.num = T_3_2.num;
        }

  LINE(75);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = 60;
        T_3_2.num = (secs.num >= T_3_1.num)? true : false;
        if (T_3_2.num == true) {

  LINE(76);
            {
            CLUREF T_4_1;
            T_4_1.num = mins.num + 1;
             if ((T_4_1.num > 0 && mins.num < 0 && 1 < 0) || 
                 (T_4_1.num < 0 && mins.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            mins.num = T_4_1.num;
            }

  LINE(77);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = 60;
            T_4_2.num = secs.num - T_4_1.num;
             if ((T_4_2.num >= 0 && secs.num < 0 && (-T_4_1.num) < 0) || 
                 (T_4_2.num <= 0 && secs.num > 0 && (-T_4_1.num) > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            secs.num = T_4_2.num;
            }
            }
            }/* end if */

  LINE(79);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = t2.vec->data[4];
        T_3_2.num = mins.num + T_3_1.num;
         if ((T_3_2.num > 0 && mins.num < 0 && T_3_1.num < 0) || 
             (T_3_2.num < 0 && mins.num > 0 && T_3_1.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        mins.num = T_3_2.num;
        }

  LINE(80);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = 60;
        T_3_2.num = (mins.num >= T_3_1.num)? true : false;
        if (T_3_2.num == true) {

  LINE(81);
            {
            CLUREF T_4_1;
            T_4_1.num = hours.num + 1;
             if ((T_4_1.num > 0 && hours.num < 0 && 1 < 0) || 
                 (T_4_1.num < 0 && hours.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            hours.num = T_4_1.num;
            }

  LINE(82);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = 60;
            T_4_2.num = mins.num - T_4_1.num;
             if ((T_4_2.num >= 0 && mins.num < 0 && (-T_4_1.num) < 0) || 
                 (T_4_2.num <= 0 && mins.num > 0 && (-T_4_1.num) > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            mins.num = T_4_2.num;
            }
            }
            }/* end if */

  LINE(84);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = t2.vec->data[1];
        T_3_2.num = hours.num + T_3_1.num;
         if ((T_3_2.num > 0 && hours.num < 0 && T_3_1.num < 0) || 
             (T_3_2.num < 0 && hours.num > 0 && T_3_1.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        hours.num = T_3_2.num;
        }

  LINE(85);
        {
        CLUREF T_3_1;
        T_3_1.num = (hours.num >= 24)? true : false;
        if (T_3_1.num == true) {

  LINE(86);
            {
            CLUREF T_4_1;
            T_4_1.num = days.num + 1;
             if ((T_4_1.num > 0 && days.num < 0 && 1 < 0) || 
                 (T_4_1.num < 0 && days.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            days.num = T_4_1.num;
            }

  LINE(87);
            {
            CLUREF T_4_1;
            T_4_1.num = hours.num - 24;
             if ((T_4_1.num >= 0 && hours.num < 0 && (-24) < 0) || 
                 (T_4_1.num <= 0 && hours.num > 0 && (-24) > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            hours.num = T_4_1.num;
            }
            }
            }/* end if */

  LINE(89);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = t2.vec->data[0];
        T_3_2.num = days.num + T_3_1.num;
         if ((T_3_2.num > 0 && days.num < 0 && T_3_1.num < 0) || 
             (T_3_2.num < 0 && days.num > 0 && T_3_1.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        days.num = T_3_2.num;
        }

  LINE(90);
        {
        {
        CLUREF T_3_1;
        RecordAlloc(6, T_3_1);
        T_3_1.vec->data[0]  = days.num;
        T_3_1.vec->data[1]  = hours.num;
        T_3_1.vec->data[4]  = mins.num;
        T_3_1.vec->data[5]  = secs.num;
        T_3_1.vec->data[3]  = millis.num;
        T_3_1.vec->data[2]  = micros.num;
        ret_1->num = T_3_1.num;
        }
        {signal (ERR_ok);}}
        }
    goto end_1;
    ex_1:
        if (err == ERR_overflow) {signal(ERR_overflow);}
        else {
            goto ex_0;}
    end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE add ****/


/**** BEGIN PROCEDURE sub ****/

errcode timeOPsub(t1, t2, ret_1)
CLUREF t1;
CLUREF t2;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF days;
    CLUREF hours;
    CLUREF mins;
    CLUREF secs;
    CLUREF millis;
    CLUREF micros;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(95);

  LINE(96);
    {
    CLUREF T_1_1;
    err = timeOPgt(t2, t1, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(97);
        {
        {signal (ERR_negative_time);}}
        }
        }/* end if */

  LINE(98);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        CLUREF T_1_4;
        CLUREF T_1_5;
        CLUREF T_1_6;
        err = timeOPget_all(t1, &T_1_1, &T_1_2, &T_1_3, &T_1_4, &T_1_5, &T_1_6);
        if (err != ERR_ok) goto ex_0;
        days.num = T_1_1.num;
        hours.num = T_1_2.num;
        mins.num = T_1_3.num;
        secs.num = T_1_4.num;
        millis.num = T_1_5.num;
        micros.num = T_1_6.num;
        }
        }

  LINE(99);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t2.vec->data[2];
    T_1_2.num = micros.num - T_1_1.num;
     if ((T_1_2.num >= 0 && micros.num < 0 && (-T_1_1.num) < 0) || 
         (T_1_2.num <= 0 && micros.num > 0 && (-T_1_1.num) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    micros.num = T_1_2.num;
    }

  LINE(100);
    {
    CLUREF T_1_1;
    T_1_1.num = (micros.num < 0)? true : false;
    if (T_1_1.num == true) {

  LINE(101);
        {
        CLUREF T_2_1;
        T_2_1.num = millis.num - 1;
         if ((T_2_1.num >= 0 && millis.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && millis.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        millis.num = T_2_1.num;
        }

  LINE(102);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 1000;
        T_2_2.num = micros.num + T_2_1.num;
         if ((T_2_2.num > 0 && micros.num < 0 && T_2_1.num < 0) || 
             (T_2_2.num < 0 && micros.num > 0 && T_2_1.num > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        micros.num = T_2_2.num;
        }
        }
        }/* end if */

  LINE(104);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t2.vec->data[3];
    T_1_2.num = millis.num - T_1_1.num;
     if ((T_1_2.num >= 0 && millis.num < 0 && (-T_1_1.num) < 0) || 
         (T_1_2.num <= 0 && millis.num > 0 && (-T_1_1.num) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    millis.num = T_1_2.num;
    }

  LINE(105);
    {
    CLUREF T_1_1;
    T_1_1.num = (millis.num < 0)? true : false;
    if (T_1_1.num == true) {

  LINE(106);
        {
        CLUREF T_2_1;
        T_2_1.num = secs.num - 1;
         if ((T_2_1.num >= 0 && secs.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && secs.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        secs.num = T_2_1.num;
        }

  LINE(107);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 1000;
        T_2_2.num = millis.num + T_2_1.num;
         if ((T_2_2.num > 0 && millis.num < 0 && T_2_1.num < 0) || 
             (T_2_2.num < 0 && millis.num > 0 && T_2_1.num > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        millis.num = T_2_2.num;
        }
        }
        }/* end if */

  LINE(109);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t2.vec->data[5];
    T_1_2.num = secs.num - T_1_1.num;
     if ((T_1_2.num >= 0 && secs.num < 0 && (-T_1_1.num) < 0) || 
         (T_1_2.num <= 0 && secs.num > 0 && (-T_1_1.num) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    secs.num = T_1_2.num;
    }

  LINE(110);
    {
    CLUREF T_1_1;
    T_1_1.num = (secs.num < 0)? true : false;
    if (T_1_1.num == true) {

  LINE(111);
        {
        CLUREF T_2_1;
        T_2_1.num = mins.num - 1;
         if ((T_2_1.num >= 0 && mins.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && mins.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        mins.num = T_2_1.num;
        }

  LINE(112);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 60;
        T_2_2.num = secs.num + T_2_1.num;
         if ((T_2_2.num > 0 && secs.num < 0 && T_2_1.num < 0) || 
             (T_2_2.num < 0 && secs.num > 0 && T_2_1.num > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        secs.num = T_2_2.num;
        }
        }
        }/* end if */

  LINE(114);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t2.vec->data[4];
    T_1_2.num = mins.num - T_1_1.num;
     if ((T_1_2.num >= 0 && mins.num < 0 && (-T_1_1.num) < 0) || 
         (T_1_2.num <= 0 && mins.num > 0 && (-T_1_1.num) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    mins.num = T_1_2.num;
    }

  LINE(115);
    {
    CLUREF T_1_1;
    T_1_1.num = (mins.num < 0)? true : false;
    if (T_1_1.num == true) {

  LINE(116);
        {
        CLUREF T_2_1;
        T_2_1.num = hours.num - 1;
         if ((T_2_1.num >= 0 && hours.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && hours.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        hours.num = T_2_1.num;
        }

  LINE(117);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 60;
        T_2_2.num = mins.num + T_2_1.num;
         if ((T_2_2.num > 0 && mins.num < 0 && T_2_1.num < 0) || 
             (T_2_2.num < 0 && mins.num > 0 && T_2_1.num > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        mins.num = T_2_2.num;
        }
        }
        }/* end if */

  LINE(119);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t2.vec->data[1];
    T_1_2.num = hours.num - T_1_1.num;
     if ((T_1_2.num >= 0 && hours.num < 0 && (-T_1_1.num) < 0) || 
         (T_1_2.num <= 0 && hours.num > 0 && (-T_1_1.num) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    hours.num = T_1_2.num;
    }

  LINE(120);
    {
    CLUREF T_1_1;
    T_1_1.num = (hours.num < 0)? true : false;
    if (T_1_1.num == true) {

  LINE(121);
        {
        CLUREF T_2_1;
        T_2_1.num = days.num - 1;
         if ((T_2_1.num >= 0 && days.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && days.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        days.num = T_2_1.num;
        }

  LINE(122);
        {
        CLUREF T_2_1;
        T_2_1.num = hours.num + 24;
         if ((T_2_1.num > 0 && hours.num < 0 && 24 < 0) || 
             (T_2_1.num < 0 && hours.num > 0 && 24 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        hours.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(124);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t2.vec->data[0];
    T_1_2.num = days.num - T_1_1.num;
     if ((T_1_2.num >= 0 && days.num < 0 && (-T_1_1.num) < 0) || 
         (T_1_2.num <= 0 && days.num > 0 && (-T_1_1.num) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    days.num = T_1_2.num;
    }

  LINE(125);
    {
    {
    CLUREF T_1_1;
    RecordAlloc(6, T_1_1);
    T_1_1.vec->data[0]  = days.num;
    T_1_1.vec->data[1]  = hours.num;
    T_1_1.vec->data[4]  = mins.num;
    T_1_1.vec->data[5]  = secs.num;
    T_1_1.vec->data[3]  = millis.num;
    T_1_1.vec->data[2]  = micros.num;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE sub ****/


/**** BEGIN PROCEDURE mul ****/

errcode timeOPmul(t, n, ret_1)
CLUREF t;
CLUREF n;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF days;
    CLUREF hours;
    CLUREF mins;
    CLUREF secs;
    CLUREF millis;
    CLUREF micros;
    CLUREF carry;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(129);

  LINE(131);
    {
    CLUREF T_1_1;
    T_1_1.num = (n.num < 0)? true : false;
    if (T_1_1.num == true) {

  LINE(132);
        {
        {signal (ERR_negative_multiplier);}}
        }
        }/* end if */

  LINE(133);
    {

  LINE(135);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        T_3_1.num = t.vec->data[2];
        T_3_2.num = 1000;
        err = timeOPdo_div(CLU_0, T_3_1, n, T_3_2, &T_3_3, &T_3_4);
        if (err != ERR_ok) goto ex_1;
        carry.num = T_3_3.num;
        micros.num = T_3_4.num;
        }

  LINE(136);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        T_3_1.num = t.vec->data[3];
        T_3_2.num = 1000;
        err = timeOPdo_div(carry, T_3_1, n, T_3_2, &T_3_3, &T_3_4);
        if (err != ERR_ok) goto ex_1;
        carry.num = T_3_3.num;
        millis.num = T_3_4.num;
        }

  LINE(137);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        T_3_1.num = t.vec->data[5];
        T_3_2.num = 60;
        err = timeOPdo_div(carry, T_3_1, n, T_3_2, &T_3_3, &T_3_4);
        if (err != ERR_ok) goto ex_1;
        carry.num = T_3_3.num;
        secs.num = T_3_4.num;
        }

  LINE(138);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        T_3_1.num = t.vec->data[4];
        T_3_2.num = 60;
        err = timeOPdo_div(carry, T_3_1, n, T_3_2, &T_3_3, &T_3_4);
        if (err != ERR_ok) goto ex_1;
        carry.num = T_3_3.num;
        mins.num = T_3_4.num;
        }

  LINE(139);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        T_3_1.num = t.vec->data[1];
        err = timeOPdo_div(carry, T_3_1, n, CLU_24, &T_3_2, &T_3_3);
        if (err != ERR_ok) goto ex_1;
        carry.num = T_3_2.num;
        hours.num = T_3_3.num;
        }

  LINE(140);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        T_3_1.num = t.vec->data[0];
        err = intOPmul(T_3_1, n, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        T_3_3.num = T_3_2.num + carry.num;
         if ((T_3_3.num > 0 && T_3_2.num < 0 && carry.num < 0) || 
             (T_3_3.num < 0 && T_3_2.num > 0 && carry.num > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        days.num = T_3_3.num;
        }

  LINE(141);
        {
        {
        CLUREF T_3_1;
        RecordAlloc(6, T_3_1);
        T_3_1.vec->data[0]  = days.num;
        T_3_1.vec->data[1]  = hours.num;
        T_3_1.vec->data[4]  = mins.num;
        T_3_1.vec->data[5]  = secs.num;
        T_3_1.vec->data[3]  = millis.num;
        T_3_1.vec->data[2]  = micros.num;
        ret_1->num = T_3_1.num;
        }
        {signal (ERR_ok);}}
        }
    goto end_1;
    ex_1:
        if (err == ERR_overflow) {signal(ERR_overflow);}
        else {
            goto ex_0;}
    end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE mul ****/


/**** BEGIN PROCEDURE div ****/

errcode timeOPdiv(t, n, ret_1)
CLUREF t;
CLUREF n;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(146);

  LINE(147);
    {
    {
    CLUREF T_2_1;
    err = timeOPaverage(t, n, &T_2_1);
    if (err != ERR_ok) goto ex_1;
    ret_1->num = T_2_1.num;
    }
    {signal (ERR_ok);}}
    goto end_1;
    ex_1:
        if (err == ERR_bad_divisor) {signal(ERR_bad_divisor);}
        else {
            goto ex_0;}
    end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE div ****/


/**** BEGIN PROCEDURE average ****/

errcode timeOPaverage(t, n, ret_1)
CLUREF t;
CLUREF n;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF days;
    CLUREF hours;
    CLUREF mins;
    CLUREF secs;
    CLUREF millis;
    CLUREF micros;
    CLUREF rem;
    CLUREF i;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(151);

  LINE(152);
    {
    CLUREF T_1_1;
    T_1_1.num = (n.num <= 0)? true : false;
    if (T_1_1.num == true) {

  LINE(153);
        {
        {signal (ERR_bad_divisor);}}
        }
        }/* end if */

  LINE(155);
    {
        {CLUREF T_1_1;
        T_1_1.num = t.vec->data[0];
        i.num = T_1_1.num;
        }
        }

  LINE(156);
    {
    CLUREF T_1_1;
    err = intOPdiv(i, n, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    days.num = T_1_1.num;
    }

  LINE(157);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_1.num = t.vec->data[1];
    err = intOPmod(i, n, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = timeOPdo_div(T_1_1, CLU_24, T_1_2, n, &T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    hours.num = T_1_3.num;
    rem.num = T_1_4.num;
    }

  LINE(158);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_1.num = t.vec->data[4];
    T_1_2.num = 60;
    err = timeOPdo_div(T_1_1, T_1_2, rem, n, &T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    mins.num = T_1_3.num;
    rem.num = T_1_4.num;
    }

  LINE(159);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_1.num = t.vec->data[5];
    T_1_2.num = 60;
    err = timeOPdo_div(T_1_1, T_1_2, rem, n, &T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    secs.num = T_1_3.num;
    rem.num = T_1_4.num;
    }

  LINE(160);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_1.num = t.vec->data[3];
    T_1_2.num = 1000;
    err = timeOPdo_div(T_1_1, T_1_2, rem, n, &T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    millis.num = T_1_3.num;
    rem.num = T_1_4.num;
    }

  LINE(161);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    CLUREF T_1_6;
    T_1_1.num = t.vec->data[2];
    err = intOPdiv(n, CLU_2, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_3.num = T_1_1.num + T_1_2.num;
     if ((T_1_3.num > 0 && T_1_1.num < 0 && T_1_2.num < 0) || 
         (T_1_3.num < 0 && T_1_1.num > 0 && T_1_2.num > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    T_1_4.num = 1000;
    err = timeOPdo_div(T_1_3, T_1_4, rem, n, &T_1_5, &T_1_6);
    if (err != ERR_ok) goto ex_0;
    micros.num = T_1_5.num;
    rem.num = T_1_6.num;
    }

  LINE(162);
    {
    {
    CLUREF T_1_1;
    RecordAlloc(6, T_1_1);
    T_1_1.vec->data[0]  = days.num;
    T_1_1.vec->data[1]  = hours.num;
    T_1_1.vec->data[4]  = mins.num;
    T_1_1.vec->data[5]  = secs.num;
    T_1_1.vec->data[3]  = millis.num;
    T_1_1.vec->data[2]  = micros.num;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE average ****/


/**** BEGIN PROCEDURE do_div ****/

errcode timeOPdo_div(a, b, c, d, ret_1, ret_2)
CLUREF a;
CLUREF b;
CLUREF c;
CLUREF d;
CLUREF *ret_1;
CLUREF *ret_2;
    {
    errcode err;
    errcode ecode2;
    CLUREF t;
    CLUREF q;
    CLUREF r;
    CLUREF rr;
    CLUREF i;
    CLUREF x;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(168);

  LINE(169);
    {

  LINE(170);
        {
            {CLUREF T_3_1;
            CLUREF T_3_2;
            err = intOPmul(b, c, &T_3_1);
            if (err != ERR_ok) goto ex_1;
            T_3_2.num = a.num + T_3_1.num;
             if ((T_3_2.num > 0 && a.num < 0 && T_3_1.num < 0) || 
                 (T_3_2.num < 0 && a.num > 0 && T_3_1.num > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            t.num = T_3_2.num;
            }
            }

  LINE(171);
        {
        {
        CLUREF T_3_1;
        err = intOPdiv(t, d, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        ret_1->num = T_3_1.num;
        }
        {
        CLUREF T_3_2;
        err = intOPmod(t, d, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        ret_2->num = T_3_2.num;
        }
        {signal (ERR_ok);}}
        }
        goto end_1;
        ex_1:
            if ((err == ERR_overflow)) {
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(173);
    {
        {CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        err = intOPdiv(a, d, &T_2_1);
        if (err != ERR_ok) goto ex_2;
        err = intOPdiv(c, d, &T_2_2);
        if (err != ERR_ok) goto ex_2;
        err = intOPmul(b, T_2_2, &T_2_3);
        if (err != ERR_ok) goto ex_2;
        T_2_4.num = T_2_1.num + T_2_3.num;
         if ((T_2_4.num > 0 && T_2_1.num < 0 && T_2_3.num < 0) || 
             (T_2_4.num < 0 && T_2_1.num > 0 && T_2_3.num > 0)) {
            err = ERR_overflow;
            goto ex_2;}
        q.num = T_2_4.num;
        }
        }
    goto end_2;
    ex_2:
        if (err == ERR_overflow) {signal(ERR_overflow);}
        else {
            goto ex_0;}
    end_2:;

  LINE(175);
    {
        {CLUREF T_1_1;
        err = intOPmod(a, d, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        r.num = T_1_1.num;
        }
        }

  LINE(176);
    {
        {CLUREF T_1_1;
        err = intOPmod(c, d, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        rr.num = T_1_1.num;
        }
        }

  LINE(177);
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
        T_2_2.num = b.num;
        for (T_2_1.num = 1; T_2_1.num <= T_2_2.num; T_2_1.num++) {
            i.num = T_2_1.num;

  LINE(178);
            {
                {CLUREF T_3_1;
                T_3_1.num = d.num - r.num;
                 if ((T_3_1.num >= 0 && d.num < 0 && (-r.num) < 0) || 
                     (T_3_1.num <= 0 && d.num > 0 && (-r.num) > 0)) {
                    err = ERR_overflow;
                    goto ex_3;}
                x.num = T_3_1.num;
                }
                }

  LINE(179);
            {
            CLUREF T_3_1;
            T_3_1.num = (rr.num >= x.num)? true : false;
            if (T_3_1.num == true) {

  LINE(180);
                {
                CLUREF T_4_1;
                T_4_1.num = rr.num - x.num;
                 if ((T_4_1.num >= 0 && rr.num < 0 && (-x.num) < 0) || 
                     (T_4_1.num <= 0 && rr.num > 0 && (-x.num) > 0)) {
                    err = ERR_overflow;
                    goto ex_3;}
                r.num = T_4_1.num;
                }

  LINE(181);
                {
                CLUREF T_4_1;
                T_4_1.num = q.num + 1;
                 if ((T_4_1.num > 0 && q.num < 0 && 1 < 0) || 
                     (T_4_1.num < 0 && q.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_3;}
                q.num = T_4_1.num;
                }
                }
            else {

  LINE(182);
                {
                CLUREF T_4_1;
                T_4_1.num = r.num + rr.num;
                 if ((T_4_1.num > 0 && r.num < 0 && rr.num < 0) || 
                     (T_4_1.num < 0 && r.num > 0 && rr.num > 0)) {
                    err = ERR_overflow;
                    goto ex_3;}
                r.num = T_4_1.num;
                }
                }}/* end if */
        }
    }
    end_inline_for_1:;
    goto end_3;
    ex_3:
        if (err == ERR_overflow) {signal(ERR_overflow);}
        else {
            goto ex_0;}
    end_3:;

  LINE(185);
    {
    {
    ret_1->num = q.num;
    }
    {
    ret_2->num = r.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE do_div ****/


/**** BEGIN PROCEDURE lt ****/

errcode timeOPlt(t1, t2, ret_1)
CLUREF t1;
CLUREF t2;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(188);

  LINE(189);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_1.num = t1.vec->data[0];
    T_1_2.num = t2.vec->data[0];
    T_1_3.num = (T_1_1.num == T_1_2.num)? true : false;
    T_1_4.num = T_1_3.num ^ 1;
    if (T_1_4.num == true) {

  LINE(190);
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.num = t1.vec->data[0];
        T_2_2.num = t2.vec->data[0];
        T_2_3.num = (T_2_1.num < T_2_2.num)? true : false;
        ret_1->num = T_2_3.num;
        }
        {signal (ERR_ok);}}
        }
    else {
    CLUREF T_1_5;
    CLUREF T_1_6;
    CLUREF T_1_7;
    CLUREF T_1_8;
    T_1_5.num = t1.vec->data[1];
    T_1_6.num = t2.vec->data[1];
    T_1_7.num = (T_1_5.num == T_1_6.num)? true : false;
    T_1_8.num = T_1_7.num ^ 1;
    if (T_1_8.num == true) {

  LINE(192);
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.num = t1.vec->data[1];
        T_2_2.num = t2.vec->data[1];
        T_2_3.num = (T_2_1.num < T_2_2.num)? true : false;
        ret_1->num = T_2_3.num;
        }
        {signal (ERR_ok);}}
        }
    else {
    CLUREF T_1_9;
    CLUREF T_1_10;
    CLUREF T_1_11;
    CLUREF T_1_12;
    T_1_9.num = t1.vec->data[4];
    T_1_10.num = t2.vec->data[4];
    T_1_11.num = (T_1_9.num == T_1_10.num)? true : false;
    T_1_12.num = T_1_11.num ^ 1;
    if (T_1_12.num == true) {

  LINE(194);
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.num = t1.vec->data[4];
        T_2_2.num = t2.vec->data[4];
        T_2_3.num = (T_2_1.num < T_2_2.num)? true : false;
        ret_1->num = T_2_3.num;
        }
        {signal (ERR_ok);}}
        }
    else {
    CLUREF T_1_13;
    CLUREF T_1_14;
    CLUREF T_1_15;
    CLUREF T_1_16;
    T_1_13.num = t1.vec->data[5];
    T_1_14.num = t2.vec->data[5];
    T_1_15.num = (T_1_13.num == T_1_14.num)? true : false;
    T_1_16.num = T_1_15.num ^ 1;
    if (T_1_16.num == true) {

  LINE(196);
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.num = t1.vec->data[5];
        T_2_2.num = t2.vec->data[5];
        T_2_3.num = (T_2_1.num < T_2_2.num)? true : false;
        ret_1->num = T_2_3.num;
        }
        {signal (ERR_ok);}}
        }
    else {
    CLUREF T_1_17;
    CLUREF T_1_18;
    CLUREF T_1_19;
    CLUREF T_1_20;
    T_1_17.num = t1.vec->data[3];
    T_1_18.num = t2.vec->data[3];
    T_1_19.num = (T_1_17.num == T_1_18.num)? true : false;
    T_1_20.num = T_1_19.num ^ 1;
    if (T_1_20.num == true) {

  LINE(198);
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.num = t1.vec->data[3];
        T_2_2.num = t2.vec->data[3];
        T_2_3.num = (T_2_1.num < T_2_2.num)? true : false;
        ret_1->num = T_2_3.num;
        }
        {signal (ERR_ok);}}
        }
    else {

  LINE(199);
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.num = t1.vec->data[2];
        T_2_2.num = t2.vec->data[2];
        T_2_3.num = (T_2_1.num < T_2_2.num)? true : false;
        ret_1->num = T_2_3.num;
        }
        {signal (ERR_ok);}}
        }}}}}}/* end if */
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE lt ****/


/**** BEGIN PROCEDURE le ****/

errcode timeOPle(t1, t2, ret_1)
CLUREF t1;
CLUREF t2;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(202);

  LINE(203);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = timeOPlt(t1, t2, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        err = timeOPequal(t1, t2, &T_1_3);
        if (err != ERR_ok) goto ex_0;
        T_1_1.num = T_1_3.num;
    }
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE le ****/


/**** BEGIN PROCEDURE ge ****/

errcode timeOPge(t1, t2, ret_1)
CLUREF t1;
CLUREF t2;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(206);

  LINE(207);
    {
    {
    CLUREF T_1_1;
    err = timeOPle(t2, t1, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE ge ****/


/**** BEGIN PROCEDURE gt ****/

errcode timeOPgt(t1, t2, ret_1)
CLUREF t1;
CLUREF t2;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(210);

  LINE(211);
    {
    {
    CLUREF T_1_1;
    err = timeOPlt(t2, t1, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE gt ****/

static int timeOPparse_own_init = 0;

/**** BEGIN PROCEDURE parse ****/

errcode timeOPparse(s, ret_1)
CLUREF s;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF a;
    CLUREF i;
        if (timeOPparse_own_init == 0) {
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        timeOPparse_own_init = 1;
    }
    enter_proc(217);

  LINE(219);
    {

  LINE(220);
        {
            {CLUREF T_3_1;
            err = arrayOPpredict(CLU_1, CLU_6, &T_3_1);
            if (err != ERR_ok) goto ex_1;
            a.num = T_3_1.num;
            }
            }

  LINE(221);
        for (;;) {
            if (true != true) { break; }

  LINE(222);
            {
                {CLUREF T_4_1;
                CLUREF T_4_2;
                T_4_1.ch = ':';
                err = stringOPindexc(T_4_1, s, &T_4_2);
                if (err != ERR_ok) goto ex_1;
                i.num = T_4_2.num;
                }
                }

  LINE(223);
            {
            CLUREF T_4_1;
            T_4_1.num = (i.num == 0)? true : false;
            if (T_4_1.num == true) {

  LINE(224);
                goto end_while_1;
                }
                }/* end if */

  LINE(225);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            T_4_1.num = i.num - 1;
             if ((T_4_1.num >= 0 && i.num < 0 && (-1) < 0) || 
                 (T_4_1.num <= 0 && i.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            err = stringOPsubstr(s, CLU_1, T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            err = intOPparse(T_4_2, &T_4_3);
            if (err != ERR_ok) goto ex_1;
            {
            if ((a.array->int_low + a.array->ext_size + 1) < a.array->int_size) {
                a.array->store->data[a.array->int_low + a.array->ext_size] = T_4_3.num;
                a.array->ext_size++; a.array->ext_high++;}
            else {
                err = arrayOPaddh(a, T_4_3);
                if (err != ERR_ok) goto ex_1;}
            }
            }

  LINE(226);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = i.num + 1;
             if ((T_4_1.num > 0 && i.num < 0 && 1 < 0) || 
                 (T_4_1.num < 0 && i.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            err = stringOPrest(s, T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            s.num = T_4_2.num;
            }
            }
            end_while_1:;

  LINE(228);
        {
            {CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.ch = '.';
            err = stringOPindexc(T_3_1, s, &T_3_2);
            if (err != ERR_ok) goto ex_1;
            i.num = T_3_2.num;
            }
            }

  LINE(229);
        {
        CLUREF T_3_1;
        T_3_1.num = (i.num > 0)? true : false;
        if (T_3_1.num == true) {

  LINE(230);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            T_4_1.num = i.num - 1;
             if ((T_4_1.num >= 0 && i.num < 0 && (-1) < 0) || 
                 (T_4_1.num <= 0 && i.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            err = stringOPsubstr(s, CLU_1, T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            err = intOPparse(T_4_2, &T_4_3);
            if (err != ERR_ok) goto ex_1;
            {
            if ((a.array->int_low + a.array->ext_size + 1) < a.array->int_size) {
                a.array->store->data[a.array->int_low + a.array->ext_size] = T_4_3.num;
                a.array->ext_size++; a.array->ext_high++;}
            else {
                err = arrayOPaddh(a, T_4_3);
                if (err != ERR_ok) goto ex_1;}
            }
            }

  LINE(231);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = i.num + 1;
             if ((T_4_1.num > 0 && i.num < 0 && 1 < 0) || 
                 (T_4_1.num < 0 && i.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            err = stringOPrest(s, T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            s.num = T_4_2.num;
            }
            }
        else {

  LINE(232);
            {
            CLUREF T_4_1;
            err = intOPparse(s, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            {
            if ((a.array->int_low + a.array->ext_size + 1) < a.array->int_size) {
                a.array->store->data[a.array->int_low + a.array->ext_size] = T_4_1.num;
                a.array->ext_size++; a.array->ext_high++;}
            else {
                err = arrayOPaddh(a, T_4_1);
                if (err != ERR_ok) goto ex_1;}
            }
            }

  LINE(233);
            {
            s = STR_;
            }
            }}/* end if */

  LINE(235);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = a.array->ext_size;
        T_3_2.num = (T_3_1.num > 4)? true : false;
        if (T_3_2.num == true) {

  LINE(236);
            {
            {signal (ERR_bad_format);}}
            }
            }/* end if */

  LINE(237);
        for (;;) {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = a.array->ext_size;
            T_3_2.num = (T_3_1.num < 4)? true : false;
            if (T_3_2.num != true) { break; }

  LINE(238);
            {
            err = arrayOPaddl(a, CLU_0);
            if (err != ERR_ok) goto ex_1;
            }
            }
            end_while_2:;

  LINE(240);
        for (;;) {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            err = stringOPsize(s, &T_3_1);
            if (err != ERR_ok) goto ex_1;
            err = intOPmod(T_3_1, CLU_3, &T_3_2);
            if (err != ERR_ok) goto ex_1;
            T_3_3.num = (T_3_2.num == 0)? true : false;
            T_3_4.num = T_3_3.num ^ 1;
            if (T_3_4.num != true) { break; }

  LINE(241);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.ch = '0';
            err = stringOPappend(s, T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            s.num = T_4_2.num;
            }
            }
            end_while_3:;

  LINE(243);
        for (;;) {
            CLUREF T_3_1;
            CLUREF T_3_2;
            err = stringOPempty(s, &T_3_1);
            if (err != ERR_ok) goto ex_1;
            T_3_2.num = T_3_1.num ^ 1;
            if (T_3_2.num != true) { break; }

  LINE(244);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            err = stringOPsubstr(s, CLU_1, CLU_3, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            err = intOPparse(T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            {
            if ((a.array->int_low + a.array->ext_size + 1) < a.array->int_size) {
                a.array->store->data[a.array->int_low + a.array->ext_size] = T_4_2.num;
                a.array->ext_size++; a.array->ext_high++;}
            else {
                err = arrayOPaddh(a, T_4_2);
                if (err != ERR_ok) goto ex_1;}
            }
            }

  LINE(245);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            err = stringOPsize(s, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            T_4_2.num = (T_4_1.num <= 3)? true : false;
            if (T_4_2.num == true) {

  LINE(246);
                goto end_while_4;
                }
                }/* end if */

  LINE(247);
            {
            CLUREF T_4_1;
            err = stringOPrest(s, CLU_4, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            s.num = T_4_1.num;
            }
            }
            end_while_4:;

  LINE(249);
        for (;;) {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = a.array->ext_size;
            T_3_2.num = (T_3_1.num < 6)? true : false;
            if (T_3_2.num != true) { break; }

  LINE(250);
            {
            {
            if ((a.array->int_low + a.array->ext_size + 1) < a.array->int_size) {
                a.array->store->data[a.array->int_low + a.array->ext_size] = 0;
                a.array->ext_size++; a.array->ext_high++;}
            else {
                err = arrayOPaddh(a, CLU_0);
                if (err != ERR_ok) goto ex_1;}
            }
            }
            }
            end_while_5:;

  LINE(252);
        {
        err = arrayOPset_low(a, CLU_1);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(253);
        {
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        CLUREF T_3_6;
        CLUREF T_3_7;
        if (1 < a.array->ext_low || 1 > a.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_1.num = a.array->store->data[1 - a.array->ext_low + a.array->int_low];
        if (2 < a.array->ext_low || 2 > a.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_2.num = a.array->store->data[2 - a.array->ext_low + a.array->int_low];
        if (3 < a.array->ext_low || 3 > a.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_3.num = a.array->store->data[3 - a.array->ext_low + a.array->int_low];
        if (4 < a.array->ext_low || 4 > a.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_4.num = a.array->store->data[4 - a.array->ext_low + a.array->int_low];
        if (5 < a.array->ext_low || 5 > a.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_5.num = a.array->store->data[5 - a.array->ext_low + a.array->int_low];
        if (6 < a.array->ext_low || 6 > a.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_6.num = a.array->store->data[6 - a.array->ext_low + a.array->int_low];
        err = timeOPcreate(T_3_1, T_3_2, T_3_3, T_3_4, T_3_5, T_3_6, &T_3_7);
        if (err != ERR_ok) goto ex_1;
        ret_1->num = T_3_7.num;
        }
        {signal (ERR_ok);}}
        }
        goto end_1;
        ex_1:
            if ((err == ERR_overflow)) {

  LINE(254);
                {
                {signal (ERR_overflow);}}
            }
            else {

  LINE(255);
                {
                {signal (ERR_bad_format);}}
            }
        end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE parse ****/


/**** BEGIN PROCEDURE unparse ****/

errcode timeOPunparse(t, ret_1)
CLUREF t;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(259);

  LINE(260);
    {
    {
    CLUREF T_1_1;
    err = timeOPformat(t, CLU_6, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE unparse ****/


/**** BEGIN PROCEDURE t2r ****/

errcode timeOPt2r(t, ret_1)
CLUREF t;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(265);

  LINE(266);
    {
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
    CLUREF T_2_3;
    CLUREF T_2_4;
    CLUREF T_2_5;
    CLUREF T_2_6;
    CLUREF T_2_7;
    CLUREF T_2_8;
    CLUREF T_2_9;
    CLUREF T_2_10;
    CLUREF T_2_11;
    CLUREF T_2_12;
    CLUREF T_2_13;
    CLUREF T_2_14;
    CLUREF T_2_15;
    CLUREF T_2_16;
    CLUREF T_2_17;
    CLUREF T_2_18;
    CLUREF T_2_19;
    CLUREF T_2_20;
    CLUREF T_2_21;
    CLUREF T_2_22;
    CLUREF T_2_23;
    CLUREF T_2_24;
    CLUREF T_2_25;
    CLUREF T_2_26;
    CLUREF T_2_27;
    T_2_1.num = t.vec->data[2];
    err = realOPi2r(T_2_1, &T_2_2);
    if (err != ERR_ok) goto ex_1;
    T_2_3.real = 1.000000e+06;
    err = realOPdiv(T_2_2, T_2_3, &T_2_4);
    if (err != ERR_ok) goto ex_1;
    T_2_5.num = t.vec->data[3];
    err = realOPi2r(T_2_5, &T_2_6);
    if (err != ERR_ok) goto ex_1;
    T_2_7.real = 1.000000e+03;
    err = realOPdiv(T_2_6, T_2_7, &T_2_8);
    if (err != ERR_ok) goto ex_1;
    err = realOPadd(T_2_4, T_2_8, &T_2_9);
    if (err != ERR_ok) goto ex_1;
    T_2_10.num = t.vec->data[5];
    err = realOPi2r(T_2_10, &T_2_11);
    if (err != ERR_ok) goto ex_1;
    err = realOPadd(T_2_9, T_2_11, &T_2_12);
    if (err != ERR_ok) goto ex_1;
    T_2_13.num = t.vec->data[4];
    err = realOPi2r(T_2_13, &T_2_14);
    if (err != ERR_ok) goto ex_1;
    T_2_15.real = 6.000000e+01;
    err = realOPmul(T_2_14, T_2_15, &T_2_16);
    if (err != ERR_ok) goto ex_1;
    err = realOPadd(T_2_12, T_2_16, &T_2_17);
    if (err != ERR_ok) goto ex_1;
    T_2_18.num = t.vec->data[1];
    err = realOPi2r(T_2_18, &T_2_19);
    if (err != ERR_ok) goto ex_1;
    T_2_20.real = 3.600000e+03;
    err = realOPmul(T_2_19, T_2_20, &T_2_21);
    if (err != ERR_ok) goto ex_1;
    err = realOPadd(T_2_17, T_2_21, &T_2_22);
    if (err != ERR_ok) goto ex_1;
    T_2_23.num = t.vec->data[0];
    err = realOPi2r(T_2_23, &T_2_24);
    if (err != ERR_ok) goto ex_1;
    T_2_25.real = 8.640000e+04;
    err = realOPmul(T_2_24, T_2_25, &T_2_26);
    if (err != ERR_ok) goto ex_1;
    err = realOPadd(T_2_22, T_2_26, &T_2_27);
    if (err != ERR_ok) goto ex_1;
    ret_1->num = T_2_27.num;
    }
    {signal (ERR_ok);}}
    goto end_1;
    ex_1:
        if (err == ERR_overflow) {signal(ERR_overflow);}
        else {
            goto ex_0;}
    end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE t2r ****/


/**** BEGIN PROCEDURE format ****/

errcode timeOPformat(t, frac_width, ret_1)
CLUREF t;
CLUREF frac_width;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF s;
    CLUREF b;
    CLUREF frac;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(279);

  LINE(281);
    {
        {b.tf = false;
        }
        }

  LINE(282);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t.vec->data[0];
    T_1_2.num = (T_1_1.num > 0)? true : false;
    if (T_1_2.num == true) {

  LINE(283);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        T_2_1.num = t.vec->data[0];
        err = intOPunparse(T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        T_2_3.ch = ':';
        err = stringOPappend(T_2_2, T_2_3, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        s.num = T_2_4.num;
        }

  LINE(284);
        {
        b.tf = true;
        }
        }
        }/* end if */

  LINE(286);
    {
    if (b.num == true) {

  LINE(287);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
        CLUREF T_2_6;
        CLUREF T_2_7;
        CLUREF T_2_8;
        T_2_1.num = t.vec->data[1];
        T_2_2.num = 100;
        T_2_3.num = T_2_1.num + T_2_2.num;
         if ((T_2_3.num > 0 && T_2_1.num < 0 && T_2_2.num < 0) || 
             (T_2_3.num < 0 && T_2_1.num > 0 && T_2_2.num > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = intOPunparse(T_2_3, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        err = stringOPrest(T_2_4, CLU_2, &T_2_5);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(s, T_2_5, &T_2_6);
        if (err != ERR_ok) goto ex_0;
        T_2_7.ch = ':';
        err = stringOPappend(T_2_6, T_2_7, &T_2_8);
        if (err != ERR_ok) goto ex_0;
        s.num = T_2_8.num;
        }
        }
    else {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t.vec->data[1];
    T_1_2.num = (T_1_1.num > 0)? true : false;
    if (T_1_2.num == true) {

  LINE(290);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        T_2_1.num = t.vec->data[1];
        err = intOPunparse(T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        T_2_3.ch = ':';
        err = stringOPappend(T_2_2, T_2_3, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        s.num = T_2_4.num;
        }

  LINE(291);
        {
        b.tf = true;
        }
        }
        }}/* end if */

  LINE(293);
    {
    if (b.num == true) {

  LINE(294);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
        CLUREF T_2_6;
        CLUREF T_2_7;
        CLUREF T_2_8;
        T_2_1.num = t.vec->data[4];
        T_2_2.num = 100;
        T_2_3.num = T_2_1.num + T_2_2.num;
         if ((T_2_3.num > 0 && T_2_1.num < 0 && T_2_2.num < 0) || 
             (T_2_3.num < 0 && T_2_1.num > 0 && T_2_2.num > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = intOPunparse(T_2_3, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        err = stringOPrest(T_2_4, CLU_2, &T_2_5);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(s, T_2_5, &T_2_6);
        if (err != ERR_ok) goto ex_0;
        T_2_7.ch = ':';
        err = stringOPappend(T_2_6, T_2_7, &T_2_8);
        if (err != ERR_ok) goto ex_0;
        s.num = T_2_8.num;
        }
        }
    else {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t.vec->data[4];
    T_1_2.num = (T_1_1.num > 0)? true : false;
    if (T_1_2.num == true) {

  LINE(297);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        T_2_1.num = t.vec->data[4];
        err = intOPunparse(T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        T_2_3.ch = ':';
        err = stringOPappend(T_2_2, T_2_3, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        s.num = T_2_4.num;
        }

  LINE(298);
        {
        b.tf = true;
        }
        }
        }}/* end if */

  LINE(300);
    {
    if (b.num == true) {

  LINE(301);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
        CLUREF T_2_6;
        T_2_1.num = t.vec->data[5];
        T_2_2.num = 100;
        T_2_3.num = T_2_1.num + T_2_2.num;
         if ((T_2_3.num > 0 && T_2_1.num < 0 && T_2_2.num < 0) || 
             (T_2_3.num < 0 && T_2_1.num > 0 && T_2_2.num > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = intOPunparse(T_2_3, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        err = stringOPrest(T_2_4, CLU_2, &T_2_5);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(s, T_2_5, &T_2_6);
        if (err != ERR_ok) goto ex_0;
        s.num = T_2_6.num;
        }
        }
    else {

  LINE(302);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = t.vec->data[5];
        err = intOPunparse(T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        s.num = T_2_2.num;
        }
        }}/* end if */

  LINE(304);
    {
    CLUREF T_1_1;
    T_1_1.num = (frac_width.num <= 0)? true : false;
    if (T_1_1.num == true) {

  LINE(305);
        {
        {
        ret_1->num = s.num;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(306);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        CLUREF T_1_4;
        T_1_1.num = t.vec->data[3];
        T_1_2.num = 1000;
        T_1_3.num = T_1_1.num + T_1_2.num;
         if ((T_1_3.num > 0 && T_1_1.num < 0 && T_1_2.num < 0) || 
             (T_1_3.num < 0 && T_1_1.num > 0 && T_1_2.num > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = intOPunparse(T_1_3, &T_1_4);
        if (err != ERR_ok) goto ex_0;
        frac.num = T_1_4.num;
        }
        }

  LINE(307);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    CLUREF T_1_6;
    T_1_1.num = t.vec->data[2];
    T_1_2.num = 1000;
    T_1_3.num = T_1_1.num + T_1_2.num;
     if ((T_1_3.num > 0 && T_1_1.num < 0 && T_1_2.num < 0) || 
         (T_1_3.num < 0 && T_1_1.num > 0 && T_1_2.num > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    err = intOPunparse(T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = stringOPrest(T_1_4, CLU_2, &T_1_5);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(frac, T_1_5, &T_1_6);
    if (err != ERR_ok) goto ex_0;
    frac.num = T_1_6.num;
    }

  LINE(308);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_1.ch = '.';
    err = stringOPappend(s, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPsubstr(frac, CLU_2, frac_width, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_4.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE format ****/


/**** BEGIN PROCEDURE print ****/

errcode timeOPprint(t, pst)
CLUREF t;
CLUREF pst;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(311);

  LINE(312);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = timeOPunparse(t, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = pstreamOPtext(pst, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE print ****/

struct OPS  *struct_days_hours_micros_millis_mins_secs_ops;
static int timeOPequal_own_init = 0;

/**** BEGIN PROCEDURE equal ****/

errcode timeOPequal(t1, t2, ret_1)
CLUREF t1;
CLUREF t2;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (timeOPequal_own_init == 0) {
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        timeOPequal_own_init = 1;
    }
    enter_proc(315);

  LINE(316);
    {

  LINE(317);
        {
        {
        CLUREF T_2_1;
        generic_CLU_proc.type_owns = 0;
        generic_CLU_proc.op_owns = struct_days_hours_micros_millis_mins_secs_ops->entry[0].fcn->op_owns;
        generic_CLU_proc.proc = structOPequal;
        CUR_PROC_VAR.proc = &generic_CLU_proc;
        err = structOPequal(t1, t2, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        ret_1->num = T_2_1.num;
        }
        {signal (ERR_ok);}}
        }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE equal ****/


/**** BEGIN PROCEDURE similar ****/

errcode timeOPsimilar(t1, t2, ret_1)
CLUREF t1;
CLUREF t2;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(321);

  LINE(322);
    {
    {
    CLUREF T_1_1;
    err = timeOPequal(t1, t2, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE similar ****/


/**** BEGIN PROCEDURE copy ****/

errcode timeOPcopy(t, ret_1)
CLUREF t;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(325);

  LINE(326);
    {
    {
    ret_1->num = t.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE copy ****/


/**** BEGIN PROCEDURE encode ****/

errcode timeOPencode(t, ist)
CLUREF t;
CLUREF ist;
    {
    errcode err;
    errcode ecode2;
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(329);

  LINE(330);
    {
    CLUREF T_2_1;
    err = timeOPunparse(t, &T_2_1);
    if (err != ERR_ok) goto ex_1;
    err = stringOPencode(T_2_1, ist);
    if (err != ERR_ok) goto ex_1;
    }
    goto end_1;
    ex_1:
        if (err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE encode ****/

static int timeOPdecode_own_init = 0;

/**** BEGIN PROCEDURE decode ****/

errcode timeOPdecode(ist, ret_1)
CLUREF ist;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (timeOPdecode_own_init == 0) {
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        timeOPdecode_own_init = 1;
    }
    enter_proc(334);

  LINE(336);
    {
    {
    CLUREF T_3_1;
    CLUREF T_3_2;
    err = stringOPdecode(ist, &T_3_1);
    if (err != ERR_ok) goto ex_2;
    err = timeOPparse(T_3_1, &T_3_2);
    if (err != ERR_ok) goto ex_2;
    ret_1->num = T_3_2.num;
    }
    {signal (ERR_ok);}}
    goto end_2;
    ex_2:
        if (err == ERR_end_of_file) {signal(ERR_end_of_file);}
        else if (err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_1;}
    end_2:;
        goto end_1;
        ex_1:
            if ((err == ERR_bad_format)) {

  LINE(338);
                {
                elist[0] = STR_bad_040format;
                {signal (ERR_not_possible);}}
            }
            else {
                goto ex_0;
            }
        end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE decode ****/

struct OPS  *struct_days_hours_micros_millis_mins_secs_ops;
static int timeOP_gcd_own_init = 0;

/**** BEGIN PROCEDURE _gcd ****/

errcode timeOP_gcd(t, tab, ret_1)
CLUREF t;
CLUREF tab;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (timeOP_gcd_own_init == 0) {
        if (time_own_init == 0) {
            err = time_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        timeOP_gcd_own_init = 1;
    }
    enter_proc(341);

  LINE(342);
    {
    {
    CLUREF T_1_1;
    generic_CLU_proc.type_owns = 0;
    generic_CLU_proc.op_owns = struct_days_hours_micros_millis_mins_secs_ops->entry[6].fcn->op_owns;
    generic_CLU_proc.proc = structOP_gcd;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    err = structOP_gcd(t, tab, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE _gcd ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[28];
} time_OPS;

CLU_proc time_oe__gcd = {{0,0,0,0}, timeOP_gcd, 0};
CLU_proc time_oe_add = {{0,0,0,0}, timeOPadd, 0};
CLU_proc time_oe_average = {{0,0,0,0}, timeOPaverage, 0};
CLU_proc time_oe_copy = {{0,0,0,0}, timeOPcopy, 0};
CLU_proc time_oe_create = {{0,0,0,0}, timeOPcreate, 0};
CLU_proc time_oe_decode = {{0,0,0,0}, timeOPdecode, 0};
CLU_proc time_oe_div = {{0,0,0,0}, timeOPdiv, 0};
CLU_proc time_oe_encode = {{0,0,0,0}, timeOPencode, 0};
CLU_proc time_oe_equal = {{0,0,0,0}, timeOPequal, 0};
CLU_proc time_oe_format = {{0,0,0,0}, timeOPformat, 0};
CLU_proc time_oe_ge = {{0,0,0,0}, timeOPge, 0};
CLU_proc time_oe_get_all = {{0,0,0,0}, timeOPget_all, 0};
CLU_proc time_oe_get_days = {{0,0,0,0}, timeOPget_days, 0};
CLU_proc time_oe_get_hours = {{0,0,0,0}, timeOPget_hours, 0};
CLU_proc time_oe_get_micros = {{0,0,0,0}, timeOPget_micros, 0};
CLU_proc time_oe_get_millis = {{0,0,0,0}, timeOPget_millis, 0};
CLU_proc time_oe_get_minutes = {{0,0,0,0}, timeOPget_minutes, 0};
CLU_proc time_oe_get_seconds = {{0,0,0,0}, timeOPget_seconds, 0};
CLU_proc time_oe_gt = {{0,0,0,0}, timeOPgt, 0};
CLU_proc time_oe_le = {{0,0,0,0}, timeOPle, 0};
CLU_proc time_oe_lt = {{0,0,0,0}, timeOPlt, 0};
CLU_proc time_oe_mul = {{0,0,0,0}, timeOPmul, 0};
CLU_proc time_oe_parse = {{0,0,0,0}, timeOPparse, 0};
CLU_proc time_oe_print = {{0,0,0,0}, timeOPprint, 0};
CLU_proc time_oe_similar = {{0,0,0,0}, timeOPsimilar, 0};
CLU_proc time_oe_sub = {{0,0,0,0}, timeOPsub, 0};
CLU_proc time_oe_t2r = {{0,0,0,0}, timeOPt2r, 0};
CLU_proc time_oe_unparse = {{0,0,0,0}, timeOPunparse, 0};

time_OPS time_ops_actual = {28, (OWNPTR)&time_own_init, (OWNPTR)&time_own_init, {
    {&time_oe__gcd, "_gcd"},
    {&time_oe_add, "add"},
    {&time_oe_average, "average"},
    {&time_oe_copy, "copy"},
    {&time_oe_create, "create"},
    {&time_oe_decode, "decode"},
    {&time_oe_div, "div"},
    {&time_oe_encode, "encode"},
    {&time_oe_equal, "equal"},
    {&time_oe_format, "format"},
    {&time_oe_ge, "ge"},
    {&time_oe_get_all, "get_all"},
    {&time_oe_get_days, "get_days"},
    {&time_oe_get_hours, "get_hours"},
    {&time_oe_get_micros, "get_micros"},
    {&time_oe_get_millis, "get_millis"},
    {&time_oe_get_minutes, "get_minutes"},
    {&time_oe_get_seconds, "get_seconds"},
    {&time_oe_gt, "gt"},
    {&time_oe_le, "le"},
    {&time_oe_lt, "lt"},
    {&time_oe_mul, "mul"},
    {&time_oe_parse, "parse"},
    {&time_oe_print, "print"},
    {&time_oe_similar, "similar"},
    {&time_oe_sub, "sub"},
    {&time_oe_t2r, "t2r"},
    {&time_oe_unparse, "unparse"}}};

struct OPS *time_ops = (struct OPS *)&time_ops_actual;

/**** END CLUSTER time ****/
