Showing error 1717

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: product-lines/email_spec11_product36_safe.cil.c
Line in file: 1795
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

   1extern int __VERIFIER_nondet_int(void);
   2/* Generated by CIL v. 1.3.7 */
   3/* print_CIL_Input is true */
   4
   5#line 2 "libacc.c"
   6struct JoinPoint {
   7   void **(*fp)(struct JoinPoint * ) ;
   8   void **args ;
   9   int argsCount ;
  10   char const   **argsType ;
  11   void *(*arg)(int  , struct JoinPoint * ) ;
  12   char const   *(*argType)(int  , struct JoinPoint * ) ;
  13   void **retValue ;
  14   char const   *retType ;
  15   char const   *funcName ;
  16   char const   *targetName ;
  17   char const   *fileName ;
  18   char const   *kind ;
  19   void *excep_return ;
  20};
  21#line 18 "libacc.c"
  22struct __UTAC__CFLOW_FUNC {
  23   int (*func)(int  , int  ) ;
  24   int val ;
  25   struct __UTAC__CFLOW_FUNC *next ;
  26};
  27#line 18 "libacc.c"
  28struct __UTAC__EXCEPTION {
  29   void *jumpbuf ;
  30   unsigned long long prtValue ;
  31   int pops ;
  32   struct __UTAC__CFLOW_FUNC *cflowfuncs ;
  33};
  34#line 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
  35typedef unsigned long size_t;
  36#line 76 "libacc.c"
  37struct __ACC__ERR {
  38   void *v ;
  39   struct __ACC__ERR *next ;
  40};
  41#line 1 "EmailLib.o"
  42#pragma merger(0,"EmailLib.i","")
  43#line 4 "EmailLib.h"
  44int initEmail(void) ;
  45#line 6
  46int getEmailId(int handle ) ;
  47#line 8
  48void setEmailId(int handle , int value ) ;
  49#line 10
  50int getEmailFrom(int handle ) ;
  51#line 12
  52void setEmailFrom(int handle , int value ) ;
  53#line 14
  54int getEmailTo(int handle ) ;
  55#line 16
  56void setEmailTo(int handle , int value ) ;
  57#line 18
  58char *getEmailSubject(int handle ) ;
  59#line 20
  60void setEmailSubject(int handle , char *value ) ;
  61#line 22
  62char *getEmailBody(int handle ) ;
  63#line 24
  64void setEmailBody(int handle , char *value ) ;
  65#line 26
  66int isEncrypted(int handle ) ;
  67#line 28
  68void setEmailIsEncrypted(int handle , int value ) ;
  69#line 30
  70int getEmailEncryptionKey(int handle ) ;
  71#line 32
  72void setEmailEncryptionKey(int handle , int value ) ;
  73#line 34
  74int isSigned(int handle ) ;
  75#line 36
  76void setEmailIsSigned(int handle , int value ) ;
  77#line 38
  78int getEmailSignKey(int handle ) ;
  79#line 40
  80void setEmailSignKey(int handle , int value ) ;
  81#line 42
  82int isVerified(int handle ) ;
  83#line 44
  84void setEmailIsSignatureVerified(int handle , int value ) ;
  85#line 5 "EmailLib.c"
  86int __ste_Email_counter  =    0;
  87#line 7 "EmailLib.c"
  88int initEmail(void) 
  89{ int retValue_acc ;
  90
  91  {
  92#line 12 "EmailLib.c"
  93  if (__ste_Email_counter < 2) {
  94#line 670
  95    __ste_Email_counter = __ste_Email_counter + 1;
  96#line 670
  97    retValue_acc = __ste_Email_counter;
  98#line 672
  99    return (retValue_acc);
 100  } else {
 101#line 678 "EmailLib.c"
 102    retValue_acc = -1;
 103#line 680
 104    return (retValue_acc);
 105  }
 106#line 687 "EmailLib.c"
 107  return (retValue_acc);
 108}
 109}
 110#line 15 "EmailLib.c"
 111int __ste_email_id0  =    0;
 112#line 17 "EmailLib.c"
 113int __ste_email_id1  =    0;
 114#line 19 "EmailLib.c"
 115int getEmailId(int handle ) 
 116{ int retValue_acc ;
 117
 118  {
 119#line 26 "EmailLib.c"
 120  if (handle == 1) {
 121#line 716
 122    retValue_acc = __ste_email_id0;
 123#line 718
 124    return (retValue_acc);
 125  } else {
 126#line 720
 127    if (handle == 2) {
 128#line 725
 129      retValue_acc = __ste_email_id1;
 130#line 727
 131      return (retValue_acc);
 132    } else {
 133#line 733 "EmailLib.c"
 134      retValue_acc = 0;
 135#line 735
 136      return (retValue_acc);
 137    }
 138  }
 139#line 742 "EmailLib.c"
 140  return (retValue_acc);
 141}
 142}
 143#line 29 "EmailLib.c"
 144void setEmailId(int handle , int value ) 
 145{ 
 146
 147  {
 148#line 35
 149  if (handle == 1) {
 150#line 31
 151    __ste_email_id0 = value;
 152  } else {
 153#line 32
 154    if (handle == 2) {
 155#line 33
 156      __ste_email_id1 = value;
 157    } else {
 158
 159    }
 160  }
 161#line 773 "EmailLib.c"
 162  return;
 163}
 164}
 165#line 37 "EmailLib.c"
 166int __ste_email_from0  =    0;
 167#line 39 "EmailLib.c"
 168int __ste_email_from1  =    0;
 169#line 41 "EmailLib.c"
 170int getEmailFrom(int handle ) 
 171{ int retValue_acc ;
 172
 173  {
 174#line 48 "EmailLib.c"
 175  if (handle == 1) {
 176#line 798
 177    retValue_acc = __ste_email_from0;
 178#line 800
 179    return (retValue_acc);
 180  } else {
 181#line 802
 182    if (handle == 2) {
 183#line 807
 184      retValue_acc = __ste_email_from1;
 185#line 809
 186      return (retValue_acc);
 187    } else {
 188#line 815 "EmailLib.c"
 189      retValue_acc = 0;
 190#line 817
 191      return (retValue_acc);
 192    }
 193  }
 194#line 824 "EmailLib.c"
 195  return (retValue_acc);
 196}
 197}
 198#line 51 "EmailLib.c"
 199void setEmailFrom(int handle , int value ) 
 200{ 
 201
 202  {
 203#line 57
 204  if (handle == 1) {
 205#line 53
 206    __ste_email_from0 = value;
 207  } else {
 208#line 54
 209    if (handle == 2) {
 210#line 55
 211      __ste_email_from1 = value;
 212    } else {
 213
 214    }
 215  }
 216#line 855 "EmailLib.c"
 217  return;
 218}
 219}
 220#line 59 "EmailLib.c"
 221int __ste_email_to0  =    0;
 222#line 61 "EmailLib.c"
 223int __ste_email_to1  =    0;
 224#line 63 "EmailLib.c"
 225int getEmailTo(int handle ) 
 226{ int retValue_acc ;
 227
 228  {
 229#line 70 "EmailLib.c"
 230  if (handle == 1) {
 231#line 880
 232    retValue_acc = __ste_email_to0;
 233#line 882
 234    return (retValue_acc);
 235  } else {
 236#line 884
 237    if (handle == 2) {
 238#line 889
 239      retValue_acc = __ste_email_to1;
 240#line 891
 241      return (retValue_acc);
 242    } else {
 243#line 897 "EmailLib.c"
 244      retValue_acc = 0;
 245#line 899
 246      return (retValue_acc);
 247    }
 248  }
 249#line 906 "EmailLib.c"
 250  return (retValue_acc);
 251}
 252}
 253#line 73 "EmailLib.c"
 254void setEmailTo(int handle , int value ) 
 255{ 
 256
 257  {
 258#line 79
 259  if (handle == 1) {
 260#line 75
 261    __ste_email_to0 = value;
 262  } else {
 263#line 76
 264    if (handle == 2) {
 265#line 77
 266      __ste_email_to1 = value;
 267    } else {
 268
 269    }
 270  }
 271#line 937 "EmailLib.c"
 272  return;
 273}
 274}
 275#line 81 "EmailLib.c"
 276char *__ste_email_subject0  ;
 277#line 83 "EmailLib.c"
 278char *__ste_email_subject1  ;
 279#line 85 "EmailLib.c"
 280char *getEmailSubject(int handle ) 
 281{ char *retValue_acc ;
 282  void *__cil_tmp3 ;
 283
 284  {
 285#line 92 "EmailLib.c"
 286  if (handle == 1) {
 287#line 962
 288    retValue_acc = __ste_email_subject0;
 289#line 964
 290    return (retValue_acc);
 291  } else {
 292#line 966
 293    if (handle == 2) {
 294#line 971
 295      retValue_acc = __ste_email_subject1;
 296#line 973
 297      return (retValue_acc);
 298    } else {
 299#line 979 "EmailLib.c"
 300      __cil_tmp3 = (void *)0;
 301#line 979
 302      retValue_acc = (char *)__cil_tmp3;
 303#line 981
 304      return (retValue_acc);
 305    }
 306  }
 307#line 988 "EmailLib.c"
 308  return (retValue_acc);
 309}
 310}
 311#line 95 "EmailLib.c"
 312void setEmailSubject(int handle , char *value ) 
 313{ 
 314
 315  {
 316#line 101
 317  if (handle == 1) {
 318#line 97
 319    __ste_email_subject0 = value;
 320  } else {
 321#line 98
 322    if (handle == 2) {
 323#line 99
 324      __ste_email_subject1 = value;
 325    } else {
 326
 327    }
 328  }
 329#line 1019 "EmailLib.c"
 330  return;
 331}
 332}
 333#line 103 "EmailLib.c"
 334char *__ste_email_body0  =    (char *)0;
 335#line 105 "EmailLib.c"
 336char *__ste_email_body1  =    (char *)0;
 337#line 107 "EmailLib.c"
 338char *getEmailBody(int handle ) 
 339{ char *retValue_acc ;
 340  void *__cil_tmp3 ;
 341
 342  {
 343#line 114 "EmailLib.c"
 344  if (handle == 1) {
 345#line 1044
 346    retValue_acc = __ste_email_body0;
 347#line 1046
 348    return (retValue_acc);
 349  } else {
 350#line 1048
 351    if (handle == 2) {
 352#line 1053
 353      retValue_acc = __ste_email_body1;
 354#line 1055
 355      return (retValue_acc);
 356    } else {
 357#line 1061 "EmailLib.c"
 358      __cil_tmp3 = (void *)0;
 359#line 1061
 360      retValue_acc = (char *)__cil_tmp3;
 361#line 1063
 362      return (retValue_acc);
 363    }
 364  }
 365#line 1070 "EmailLib.c"
 366  return (retValue_acc);
 367}
 368}
 369#line 117 "EmailLib.c"
 370void setEmailBody(int handle , char *value ) 
 371{ 
 372
 373  {
 374#line 123
 375  if (handle == 1) {
 376#line 119
 377    __ste_email_body0 = value;
 378  } else {
 379#line 120
 380    if (handle == 2) {
 381#line 121
 382      __ste_email_body1 = value;
 383    } else {
 384
 385    }
 386  }
 387#line 1101 "EmailLib.c"
 388  return;
 389}
 390}
 391#line 125 "EmailLib.c"
 392int __ste_email_isEncrypted0  =    0;
 393#line 127 "EmailLib.c"
 394int __ste_email_isEncrypted1  =    0;
 395#line 129 "EmailLib.c"
 396int isEncrypted(int handle ) 
 397{ int retValue_acc ;
 398
 399  {
 400#line 136 "EmailLib.c"
 401  if (handle == 1) {
 402#line 1126
 403    retValue_acc = __ste_email_isEncrypted0;
 404#line 1128
 405    return (retValue_acc);
 406  } else {
 407#line 1130
 408    if (handle == 2) {
 409#line 1135
 410      retValue_acc = __ste_email_isEncrypted1;
 411#line 1137
 412      return (retValue_acc);
 413    } else {
 414#line 1143 "EmailLib.c"
 415      retValue_acc = 0;
 416#line 1145
 417      return (retValue_acc);
 418    }
 419  }
 420#line 1152 "EmailLib.c"
 421  return (retValue_acc);
 422}
 423}
 424#line 139 "EmailLib.c"
 425void setEmailIsEncrypted(int handle , int value ) 
 426{ 
 427
 428  {
 429#line 145
 430  if (handle == 1) {
 431#line 141
 432    __ste_email_isEncrypted0 = value;
 433  } else {
 434#line 142
 435    if (handle == 2) {
 436#line 143
 437      __ste_email_isEncrypted1 = value;
 438    } else {
 439
 440    }
 441  }
 442#line 1183 "EmailLib.c"
 443  return;
 444}
 445}
 446#line 147 "EmailLib.c"
 447int __ste_email_encryptionKey0  =    0;
 448#line 149 "EmailLib.c"
 449int __ste_email_encryptionKey1  =    0;
 450#line 151 "EmailLib.c"
 451int getEmailEncryptionKey(int handle ) 
 452{ int retValue_acc ;
 453
 454  {
 455#line 158 "EmailLib.c"
 456  if (handle == 1) {
 457#line 1208
 458    retValue_acc = __ste_email_encryptionKey0;
 459#line 1210
 460    return (retValue_acc);
 461  } else {
 462#line 1212
 463    if (handle == 2) {
 464#line 1217
 465      retValue_acc = __ste_email_encryptionKey1;
 466#line 1219
 467      return (retValue_acc);
 468    } else {
 469#line 1225 "EmailLib.c"
 470      retValue_acc = 0;
 471#line 1227
 472      return (retValue_acc);
 473    }
 474  }
 475#line 1234 "EmailLib.c"
 476  return (retValue_acc);
 477}
 478}
 479#line 161 "EmailLib.c"
 480void setEmailEncryptionKey(int handle , int value ) 
 481{ 
 482
 483  {
 484#line 167
 485  if (handle == 1) {
 486#line 163
 487    __ste_email_encryptionKey0 = value;
 488  } else {
 489#line 164
 490    if (handle == 2) {
 491#line 165
 492      __ste_email_encryptionKey1 = value;
 493    } else {
 494
 495    }
 496  }
 497#line 1265 "EmailLib.c"
 498  return;
 499}
 500}
 501#line 169 "EmailLib.c"
 502int __ste_email_isSigned0  =    0;
 503#line 171 "EmailLib.c"
 504int __ste_email_isSigned1  =    0;
 505#line 173 "EmailLib.c"
 506int isSigned(int handle ) 
 507{ int retValue_acc ;
 508
 509  {
 510#line 180 "EmailLib.c"
 511  if (handle == 1) {
 512#line 1290
 513    retValue_acc = __ste_email_isSigned0;
 514#line 1292
 515    return (retValue_acc);
 516  } else {
 517#line 1294
 518    if (handle == 2) {
 519#line 1299
 520      retValue_acc = __ste_email_isSigned1;
 521#line 1301
 522      return (retValue_acc);
 523    } else {
 524#line 1307 "EmailLib.c"
 525      retValue_acc = 0;
 526#line 1309
 527      return (retValue_acc);
 528    }
 529  }
 530#line 1316 "EmailLib.c"
 531  return (retValue_acc);
 532}
 533}
 534#line 183 "EmailLib.c"
 535void setEmailIsSigned(int handle , int value ) 
 536{ 
 537
 538  {
 539#line 189
 540  if (handle == 1) {
 541#line 185
 542    __ste_email_isSigned0 = value;
 543  } else {
 544#line 186
 545    if (handle == 2) {
 546#line 187
 547      __ste_email_isSigned1 = value;
 548    } else {
 549
 550    }
 551  }
 552#line 1347 "EmailLib.c"
 553  return;
 554}
 555}
 556#line 191 "EmailLib.c"
 557int __ste_email_signKey0  =    0;
 558#line 193 "EmailLib.c"
 559int __ste_email_signKey1  =    0;
 560#line 195 "EmailLib.c"
 561int getEmailSignKey(int handle ) 
 562{ int retValue_acc ;
 563
 564  {
 565#line 202 "EmailLib.c"
 566  if (handle == 1) {
 567#line 1372
 568    retValue_acc = __ste_email_signKey0;
 569#line 1374
 570    return (retValue_acc);
 571  } else {
 572#line 1376
 573    if (handle == 2) {
 574#line 1381
 575      retValue_acc = __ste_email_signKey1;
 576#line 1383
 577      return (retValue_acc);
 578    } else {
 579#line 1389 "EmailLib.c"
 580      retValue_acc = 0;
 581#line 1391
 582      return (retValue_acc);
 583    }
 584  }
 585#line 1398 "EmailLib.c"
 586  return (retValue_acc);
 587}
 588}
 589#line 205 "EmailLib.c"
 590void setEmailSignKey(int handle , int value ) 
 591{ 
 592
 593  {
 594#line 211
 595  if (handle == 1) {
 596#line 207
 597    __ste_email_signKey0 = value;
 598  } else {
 599#line 208
 600    if (handle == 2) {
 601#line 209
 602      __ste_email_signKey1 = value;
 603    } else {
 604
 605    }
 606  }
 607#line 1429 "EmailLib.c"
 608  return;
 609}
 610}
 611#line 213 "EmailLib.c"
 612int __ste_email_isSignatureVerified0  ;
 613#line 215 "EmailLib.c"
 614int __ste_email_isSignatureVerified1  ;
 615#line 217 "EmailLib.c"
 616int isVerified(int handle ) 
 617{ int retValue_acc ;
 618
 619  {
 620#line 224 "EmailLib.c"
 621  if (handle == 1) {
 622#line 1454
 623    retValue_acc = __ste_email_isSignatureVerified0;
 624#line 1456
 625    return (retValue_acc);
 626  } else {
 627#line 1458
 628    if (handle == 2) {
 629#line 1463
 630      retValue_acc = __ste_email_isSignatureVerified1;
 631#line 1465
 632      return (retValue_acc);
 633    } else {
 634#line 1471 "EmailLib.c"
 635      retValue_acc = 0;
 636#line 1473
 637      return (retValue_acc);
 638    }
 639  }
 640#line 1480 "EmailLib.c"
 641  return (retValue_acc);
 642}
 643}
 644#line 227 "EmailLib.c"
 645void setEmailIsSignatureVerified(int handle , int value ) 
 646{ 
 647
 648  {
 649#line 233
 650  if (handle == 1) {
 651#line 229
 652    __ste_email_isSignatureVerified0 = value;
 653  } else {
 654#line 230
 655    if (handle == 2) {
 656#line 231
 657      __ste_email_isSignatureVerified1 = value;
 658    } else {
 659
 660    }
 661  }
 662#line 1511 "EmailLib.c"
 663  return;
 664}
 665}
 666#line 1 "libacc.o"
 667#pragma merger(0,"libacc.i","")
 668#line 73 "/usr/include/assert.h"
 669extern  __attribute__((__nothrow__, __noreturn__)) void __assert_fail(char const   *__assertion ,
 670                                                                      char const   *__file ,
 671                                                                      unsigned int __line ,
 672                                                                      char const   *__function ) ;
 673#line 471 "/usr/include/stdlib.h"
 674extern  __attribute__((__nothrow__)) void *malloc(size_t __size )  __attribute__((__malloc__)) ;
 675#line 488
 676extern  __attribute__((__nothrow__)) void free(void *__ptr ) ;
 677#line 32 "libacc.c"
 678void __utac__exception__cf_handler_set(void *exception , int (*cflow_func)(int  ,
 679                                                                           int  ) ,
 680                                       int val ) 
 681{ struct __UTAC__EXCEPTION *excep ;
 682  struct __UTAC__CFLOW_FUNC *cf ;
 683  void *tmp ;
 684  unsigned long __cil_tmp7 ;
 685  unsigned long __cil_tmp8 ;
 686  unsigned long __cil_tmp9 ;
 687  unsigned long __cil_tmp10 ;
 688  unsigned long __cil_tmp11 ;
 689  unsigned long __cil_tmp12 ;
 690  unsigned long __cil_tmp13 ;
 691  unsigned long __cil_tmp14 ;
 692  int (**mem_15)(int  , int  ) ;
 693  int *mem_16 ;
 694  struct __UTAC__CFLOW_FUNC **mem_17 ;
 695  struct __UTAC__CFLOW_FUNC **mem_18 ;
 696  struct __UTAC__CFLOW_FUNC **mem_19 ;
 697
 698  {
 699  {
 700#line 33
 701  excep = (struct __UTAC__EXCEPTION *)exception;
 702#line 34
 703  tmp = malloc(24UL);
 704#line 34
 705  cf = (struct __UTAC__CFLOW_FUNC *)tmp;
 706#line 36
 707  mem_15 = (int (**)(int  , int  ))cf;
 708#line 36
 709  *mem_15 = cflow_func;
 710#line 37
 711  __cil_tmp7 = (unsigned long )cf;
 712#line 37
 713  __cil_tmp8 = __cil_tmp7 + 8;
 714#line 37
 715  mem_16 = (int *)__cil_tmp8;
 716#line 37
 717  *mem_16 = val;
 718#line 38
 719  __cil_tmp9 = (unsigned long )cf;
 720#line 38
 721  __cil_tmp10 = __cil_tmp9 + 16;
 722#line 38
 723  __cil_tmp11 = (unsigned long )excep;
 724#line 38
 725  __cil_tmp12 = __cil_tmp11 + 24;
 726#line 38
 727  mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp10;
 728#line 38
 729  mem_18 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp12;
 730#line 38
 731  *mem_17 = *mem_18;
 732#line 39
 733  __cil_tmp13 = (unsigned long )excep;
 734#line 39
 735  __cil_tmp14 = __cil_tmp13 + 24;
 736#line 39
 737  mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
 738#line 39
 739  *mem_19 = cf;
 740  }
 741#line 654 "libacc.c"
 742  return;
 743}
 744}
 745#line 44 "libacc.c"
 746void __utac__exception__cf_handler_free(void *exception ) 
 747{ struct __UTAC__EXCEPTION *excep ;
 748  struct __UTAC__CFLOW_FUNC *cf ;
 749  struct __UTAC__CFLOW_FUNC *tmp ;
 750  unsigned long __cil_tmp5 ;
 751  unsigned long __cil_tmp6 ;
 752  struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
 753  unsigned long __cil_tmp8 ;
 754  unsigned long __cil_tmp9 ;
 755  unsigned long __cil_tmp10 ;
 756  unsigned long __cil_tmp11 ;
 757  void *__cil_tmp12 ;
 758  unsigned long __cil_tmp13 ;
 759  unsigned long __cil_tmp14 ;
 760  struct __UTAC__CFLOW_FUNC **mem_15 ;
 761  struct __UTAC__CFLOW_FUNC **mem_16 ;
 762  struct __UTAC__CFLOW_FUNC **mem_17 ;
 763
 764  {
 765#line 45
 766  excep = (struct __UTAC__EXCEPTION *)exception;
 767#line 46
 768  __cil_tmp5 = (unsigned long )excep;
 769#line 46
 770  __cil_tmp6 = __cil_tmp5 + 24;
 771#line 46
 772  mem_15 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
 773#line 46
 774  cf = *mem_15;
 775  {
 776#line 49
 777  while (1) {
 778    while_0_continue: /* CIL Label */ ;
 779    {
 780#line 49
 781    __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
 782#line 49
 783    __cil_tmp8 = (unsigned long )__cil_tmp7;
 784#line 49
 785    __cil_tmp9 = (unsigned long )cf;
 786#line 49
 787    if (__cil_tmp9 != __cil_tmp8) {
 788
 789    } else {
 790      goto while_0_break;
 791    }
 792    }
 793    {
 794#line 50
 795    tmp = cf;
 796#line 51
 797    __cil_tmp10 = (unsigned long )cf;
 798#line 51
 799    __cil_tmp11 = __cil_tmp10 + 16;
 800#line 51
 801    mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp11;
 802#line 51
 803    cf = *mem_16;
 804#line 52
 805    __cil_tmp12 = (void *)tmp;
 806#line 52
 807    free(__cil_tmp12);
 808    }
 809  }
 810  while_0_break: /* CIL Label */ ;
 811  }
 812#line 55
 813  __cil_tmp13 = (unsigned long )excep;
 814#line 55
 815  __cil_tmp14 = __cil_tmp13 + 24;
 816#line 55
 817  mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
 818#line 55
 819  *mem_17 = (struct __UTAC__CFLOW_FUNC *)0;
 820#line 694 "libacc.c"
 821  return;
 822}
 823}
 824#line 59 "libacc.c"
 825void __utac__exception__cf_handler_reset(void *exception ) 
 826{ struct __UTAC__EXCEPTION *excep ;
 827  struct __UTAC__CFLOW_FUNC *cf ;
 828  unsigned long __cil_tmp5 ;
 829  unsigned long __cil_tmp6 ;
 830  struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
 831  unsigned long __cil_tmp8 ;
 832  unsigned long __cil_tmp9 ;
 833  int (*__cil_tmp10)(int  , int  ) ;
 834  unsigned long __cil_tmp11 ;
 835  unsigned long __cil_tmp12 ;
 836  int __cil_tmp13 ;
 837  unsigned long __cil_tmp14 ;
 838  unsigned long __cil_tmp15 ;
 839  struct __UTAC__CFLOW_FUNC **mem_16 ;
 840  int (**mem_17)(int  , int  ) ;
 841  int *mem_18 ;
 842  struct __UTAC__CFLOW_FUNC **mem_19 ;
 843
 844  {
 845#line 60
 846  excep = (struct __UTAC__EXCEPTION *)exception;
 847#line 61
 848  __cil_tmp5 = (unsigned long )excep;
 849#line 61
 850  __cil_tmp6 = __cil_tmp5 + 24;
 851#line 61
 852  mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
 853#line 61
 854  cf = *mem_16;
 855  {
 856#line 64
 857  while (1) {
 858    while_1_continue: /* CIL Label */ ;
 859    {
 860#line 64
 861    __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
 862#line 64
 863    __cil_tmp8 = (unsigned long )__cil_tmp7;
 864#line 64
 865    __cil_tmp9 = (unsigned long )cf;
 866#line 64
 867    if (__cil_tmp9 != __cil_tmp8) {
 868
 869    } else {
 870      goto while_1_break;
 871    }
 872    }
 873    {
 874#line 65
 875    mem_17 = (int (**)(int  , int  ))cf;
 876#line 65
 877    __cil_tmp10 = *mem_17;
 878#line 65
 879    __cil_tmp11 = (unsigned long )cf;
 880#line 65
 881    __cil_tmp12 = __cil_tmp11 + 8;
 882#line 65
 883    mem_18 = (int *)__cil_tmp12;
 884#line 65
 885    __cil_tmp13 = *mem_18;
 886#line 65
 887    (*__cil_tmp10)(4, __cil_tmp13);
 888#line 66
 889    __cil_tmp14 = (unsigned long )cf;
 890#line 66
 891    __cil_tmp15 = __cil_tmp14 + 16;
 892#line 66
 893    mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp15;
 894#line 66
 895    cf = *mem_19;
 896    }
 897  }
 898  while_1_break: /* CIL Label */ ;
 899  }
 900  {
 901#line 69
 902  __utac__exception__cf_handler_free(exception);
 903  }
 904#line 732 "libacc.c"
 905  return;
 906}
 907}
 908#line 80 "libacc.c"
 909void *__utac__error_stack_mgt(void *env , int mode , int count ) ;
 910#line 80 "libacc.c"
 911static struct __ACC__ERR *head  =    (struct __ACC__ERR *)0;
 912#line 79 "libacc.c"
 913void *__utac__error_stack_mgt(void *env , int mode , int count ) 
 914{ void *retValue_acc ;
 915  struct __ACC__ERR *new ;
 916  void *tmp ;
 917  struct __ACC__ERR *temp ;
 918  struct __ACC__ERR *next ;
 919  void *excep ;
 920  unsigned long __cil_tmp10 ;
 921  unsigned long __cil_tmp11 ;
 922  unsigned long __cil_tmp12 ;
 923  unsigned long __cil_tmp13 ;
 924  void *__cil_tmp14 ;
 925  unsigned long __cil_tmp15 ;
 926  unsigned long __cil_tmp16 ;
 927  void *__cil_tmp17 ;
 928  void **mem_18 ;
 929  struct __ACC__ERR **mem_19 ;
 930  struct __ACC__ERR **mem_20 ;
 931  void **mem_21 ;
 932  struct __ACC__ERR **mem_22 ;
 933  void **mem_23 ;
 934  void **mem_24 ;
 935
 936  {
 937#line 82 "libacc.c"
 938  if (count == 0) {
 939#line 758 "libacc.c"
 940    return (retValue_acc);
 941  } else {
 942
 943  }
 944#line 86 "libacc.c"
 945  if (mode == 0) {
 946    {
 947#line 87
 948    tmp = malloc(16UL);
 949#line 87
 950    new = (struct __ACC__ERR *)tmp;
 951#line 88
 952    mem_18 = (void **)new;
 953#line 88
 954    *mem_18 = env;
 955#line 89
 956    __cil_tmp10 = (unsigned long )new;
 957#line 89
 958    __cil_tmp11 = __cil_tmp10 + 8;
 959#line 89
 960    mem_19 = (struct __ACC__ERR **)__cil_tmp11;
 961#line 89
 962    *mem_19 = head;
 963#line 90
 964    head = new;
 965#line 776 "libacc.c"
 966    retValue_acc = (void *)new;
 967    }
 968#line 778
 969    return (retValue_acc);
 970  } else {
 971
 972  }
 973#line 94 "libacc.c"
 974  if (mode == 1) {
 975#line 95
 976    temp = head;
 977    {
 978#line 98
 979    while (1) {
 980      while_2_continue: /* CIL Label */ ;
 981#line 98
 982      if (count > 1) {
 983
 984      } else {
 985        goto while_2_break;
 986      }
 987      {
 988#line 99
 989      __cil_tmp12 = (unsigned long )temp;
 990#line 99
 991      __cil_tmp13 = __cil_tmp12 + 8;
 992#line 99
 993      mem_20 = (struct __ACC__ERR **)__cil_tmp13;
 994#line 99
 995      next = *mem_20;
 996#line 100
 997      mem_21 = (void **)temp;
 998#line 100
 999      excep = *mem_21;
1000#line 101
1001      __cil_tmp14 = (void *)temp;
1002#line 101
1003      free(__cil_tmp14);
1004#line 102
1005      __utac__exception__cf_handler_reset(excep);
1006#line 103
1007      temp = next;
1008#line 104
1009      count = count - 1;
1010      }
1011    }
1012    while_2_break: /* CIL Label */ ;
1013    }
1014    {
1015#line 107
1016    __cil_tmp15 = (unsigned long )temp;
1017#line 107
1018    __cil_tmp16 = __cil_tmp15 + 8;
1019#line 107
1020    mem_22 = (struct __ACC__ERR **)__cil_tmp16;
1021#line 107
1022    head = *mem_22;
1023#line 108
1024    mem_23 = (void **)temp;
1025#line 108
1026    excep = *mem_23;
1027#line 109
1028    __cil_tmp17 = (void *)temp;
1029#line 109
1030    free(__cil_tmp17);
1031#line 110
1032    __utac__exception__cf_handler_reset(excep);
1033#line 820 "libacc.c"
1034    retValue_acc = excep;
1035    }
1036#line 822
1037    return (retValue_acc);
1038  } else {
1039
1040  }
1041#line 114
1042  if (mode == 2) {
1043#line 118 "libacc.c"
1044    if (head) {
1045#line 831
1046      mem_24 = (void **)head;
1047#line 831
1048      retValue_acc = *mem_24;
1049#line 833
1050      return (retValue_acc);
1051    } else {
1052#line 837 "libacc.c"
1053      retValue_acc = (void *)0;
1054#line 839
1055      return (retValue_acc);
1056    }
1057  } else {
1058
1059  }
1060#line 846 "libacc.c"
1061  return (retValue_acc);
1062}
1063}
1064#line 122 "libacc.c"
1065void *__utac__get_this_arg(int i , struct JoinPoint *this ) 
1066{ void *retValue_acc ;
1067  unsigned long __cil_tmp4 ;
1068  unsigned long __cil_tmp5 ;
1069  int __cil_tmp6 ;
1070  int __cil_tmp7 ;
1071  unsigned long __cil_tmp8 ;
1072  unsigned long __cil_tmp9 ;
1073  void **__cil_tmp10 ;
1074  void **__cil_tmp11 ;
1075  int *mem_12 ;
1076  void ***mem_13 ;
1077
1078  {
1079#line 123
1080  if (i > 0) {
1081    {
1082#line 123
1083    __cil_tmp4 = (unsigned long )this;
1084#line 123
1085    __cil_tmp5 = __cil_tmp4 + 16;
1086#line 123
1087    mem_12 = (int *)__cil_tmp5;
1088#line 123
1089    __cil_tmp6 = *mem_12;
1090#line 123
1091    if (i <= __cil_tmp6) {
1092
1093    } else {
1094      {
1095#line 123
1096      __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1097                    123U, "__utac__get_this_arg");
1098      }
1099    }
1100    }
1101  } else {
1102    {
1103#line 123
1104    __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1105                  123U, "__utac__get_this_arg");
1106    }
1107  }
1108#line 870 "libacc.c"
1109  __cil_tmp7 = i - 1;
1110#line 870
1111  __cil_tmp8 = (unsigned long )this;
1112#line 870
1113  __cil_tmp9 = __cil_tmp8 + 8;
1114#line 870
1115  mem_13 = (void ***)__cil_tmp9;
1116#line 870
1117  __cil_tmp10 = *mem_13;
1118#line 870
1119  __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
1120#line 870
1121  retValue_acc = *__cil_tmp11;
1122#line 872
1123  return (retValue_acc);
1124#line 879
1125  return (retValue_acc);
1126}
1127}
1128#line 129 "libacc.c"
1129char const   *__utac__get_this_argtype(int i , struct JoinPoint *this ) 
1130{ char const   *retValue_acc ;
1131  unsigned long __cil_tmp4 ;
1132  unsigned long __cil_tmp5 ;
1133  int __cil_tmp6 ;
1134  int __cil_tmp7 ;
1135  unsigned long __cil_tmp8 ;
1136  unsigned long __cil_tmp9 ;
1137  char const   **__cil_tmp10 ;
1138  char const   **__cil_tmp11 ;
1139  int *mem_12 ;
1140  char const   ***mem_13 ;
1141
1142  {
1143#line 131
1144  if (i > 0) {
1145    {
1146#line 131
1147    __cil_tmp4 = (unsigned long )this;
1148#line 131
1149    __cil_tmp5 = __cil_tmp4 + 16;
1150#line 131
1151    mem_12 = (int *)__cil_tmp5;
1152#line 131
1153    __cil_tmp6 = *mem_12;
1154#line 131
1155    if (i <= __cil_tmp6) {
1156
1157    } else {
1158      {
1159#line 131
1160      __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1161                    131U, "__utac__get_this_argtype");
1162      }
1163    }
1164    }
1165  } else {
1166    {
1167#line 131
1168    __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
1169                  131U, "__utac__get_this_argtype");
1170    }
1171  }
1172#line 903 "libacc.c"
1173  __cil_tmp7 = i - 1;
1174#line 903
1175  __cil_tmp8 = (unsigned long )this;
1176#line 903
1177  __cil_tmp9 = __cil_tmp8 + 24;
1178#line 903
1179  mem_13 = (char const   ***)__cil_tmp9;
1180#line 903
1181  __cil_tmp10 = *mem_13;
1182#line 903
1183  __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
1184#line 903
1185  retValue_acc = *__cil_tmp11;
1186#line 905
1187  return (retValue_acc);
1188#line 912
1189  return (retValue_acc);
1190}
1191}
1192#line 1 "featureselect.o"
1193#pragma merger(0,"featureselect.i","")
1194#line 8 "featureselect.h"
1195int __SELECTED_FEATURE_Base  ;
1196#line 11 "featureselect.h"
1197int __SELECTED_FEATURE_Keys  ;
1198#line 14 "featureselect.h"
1199int __SELECTED_FEATURE_Encrypt  ;
1200#line 17 "featureselect.h"
1201int __SELECTED_FEATURE_AutoResponder  ;
1202#line 20 "featureselect.h"
1203int __SELECTED_FEATURE_AddressBook  ;
1204#line 23 "featureselect.h"
1205int __SELECTED_FEATURE_Sign  ;
1206#line 26 "featureselect.h"
1207int __SELECTED_FEATURE_Forward  ;
1208#line 29 "featureselect.h"
1209int __SELECTED_FEATURE_Verify  ;
1210#line 32 "featureselect.h"
1211int __SELECTED_FEATURE_Decrypt  ;
1212#line 35 "featureselect.h"
1213int __GUIDSL_ROOT_PRODUCTION  ;
1214#line 37 "featureselect.h"
1215int __GUIDSL_NON_TERMINAL_main  ;
1216#line 41
1217int select_one(void) ;
1218#line 43
1219void select_features(void) ;
1220#line 45
1221void select_helpers(void) ;
1222#line 47
1223int valid_product(void) ;
1224#line 8 "featureselect.c"
1225int select_one(void) 
1226{ int retValue_acc ;
1227  int choice = __VERIFIER_nondet_int();
1228
1229  {
1230#line 84 "featureselect.c"
1231  retValue_acc = choice;
1232#line 86
1233  return (retValue_acc);
1234#line 93
1235  return (retValue_acc);
1236}
1237}
1238#line 14 "featureselect.c"
1239void select_features(void) 
1240{ 
1241
1242  {
1243#line 115 "featureselect.c"
1244  return;
1245}
1246}
1247#line 20 "featureselect.c"
1248void select_helpers(void) 
1249{ 
1250
1251  {
1252#line 133 "featureselect.c"
1253  return;
1254}
1255}
1256#line 25 "featureselect.c"
1257int valid_product(void) 
1258{ int retValue_acc ;
1259
1260  {
1261#line 151 "featureselect.c"
1262  retValue_acc = 1;
1263#line 153
1264  return (retValue_acc);
1265#line 160
1266  return (retValue_acc);
1267}
1268}
1269#line 1 "Test.o"
1270#pragma merger(0,"Test.i","")
1271#line 359 "/usr/include/stdio.h"
1272extern int printf(char const   * __restrict  __format  , ...) ;
1273#line 688
1274extern int puts(char const   *__s ) ;
1275#line 16 "ClientLib.h"
1276void setClientAddressBookSize(int handle , int value ) ;
1277#line 22
1278void setClientAddressBookAlias(int handle , int index , int value ) ;
1279#line 26
1280void setClientAddressBookAddress(int handle , int index , int value ) ;
1281#line 31
1282void setClientAutoResponse(int handle , int value ) ;
1283#line 51
1284void setClientForwardReceiver(int handle , int value ) ;
1285#line 55
1286void setClientId(int handle , int value ) ;
1287#line 17 "Client.h"
1288int is_queue_empty(void) ;
1289#line 19
1290int get_queued_client(void) ;
1291#line 21
1292int get_queued_email(void) ;
1293#line 26
1294void outgoing(int client , int msg ) ;
1295#line 35
1296void sendEmail(int sender , int receiver ) ;
1297#line 2 "Test.h"
1298int bob  ;
1299#line 5 "Test.h"
1300int rjh  ;
1301#line 8 "Test.h"
1302int chuck  ;
1303#line 11
1304void setup_bob(int bob___0 ) ;
1305#line 14
1306void setup_rjh(int rjh___0 ) ;
1307#line 17
1308void setup_chuck(int chuck___0 ) ;
1309#line 23
1310void bobToRjh(void) ;
1311#line 26
1312void rjhToBob(void) ;
1313#line 29
1314void test(void) ;
1315#line 32
1316void setup(void) ;
1317#line 35
1318int main(void) ;
1319#line 36
1320void rjhSetAutoRespond(void) ;
1321#line 38
1322void bobSetAddressBook(void) ;
1323#line 39
1324void rjhEnableForwarding(void) ;
1325#line 18 "Test.c"
1326void setup_bob(int bob___0 ) 
1327{ 
1328
1329  {
1330  {
1331#line 19
1332  setClientId(bob___0, bob___0);
1333  }
1334#line 1312 "Test.c"
1335  return;
1336}
1337}
1338#line 26 "Test.c"
1339void setup_rjh(int rjh___0 ) 
1340{ 
1341
1342  {
1343  {
1344#line 27
1345  setClientId(rjh___0, rjh___0);
1346  }
1347#line 1332 "Test.c"
1348  return;
1349}
1350}
1351#line 33 "Test.c"
1352void setup_chuck(int chuck___0 ) 
1353{ 
1354
1355  {
1356  {
1357#line 34
1358  setClientId(chuck___0, chuck___0);
1359  }
1360#line 1352 "Test.c"
1361  return;
1362}
1363}
1364#line 44 "Test.c"
1365void bobToRjh(void) 
1366{ int tmp ;
1367  int tmp___0 ;
1368  int tmp___1 ;
1369
1370  {
1371  {
1372#line 46
1373  puts("Please enter a subject and a message body.\n");
1374#line 47
1375  sendEmail(bob, rjh);
1376#line 48
1377  tmp___1 = is_queue_empty();
1378  }
1379#line 48
1380  if (tmp___1) {
1381
1382  } else {
1383    {
1384#line 49
1385    tmp = get_queued_email();
1386#line 49
1387    tmp___0 = get_queued_client();
1388#line 49
1389    outgoing(tmp___0, tmp);
1390    }
1391  }
1392#line 1379 "Test.c"
1393  return;
1394}
1395}
1396#line 56 "Test.c"
1397void rjhToBob(void) 
1398{ 
1399
1400  {
1401  {
1402#line 58
1403  puts("Please enter a subject and a message body.\n");
1404#line 59
1405  sendEmail(rjh, bob);
1406  }
1407#line 1401 "Test.c"
1408  return;
1409}
1410}
1411#line 63 "Test.c"
1412#line 70 "Test.c"
1413void setup(void) 
1414{ char const   * __restrict  __cil_tmp1 ;
1415  char const   * __restrict  __cil_tmp2 ;
1416  char const   * __restrict  __cil_tmp3 ;
1417
1418  {
1419  {
1420#line 71
1421  bob = 1;
1422#line 72
1423  setup_bob(bob);
1424#line 73
1425  __cil_tmp1 = (char const   * __restrict  )"bob: %d\n";
1426#line 73
1427  printf(__cil_tmp1, bob);
1428#line 75
1429  rjh = 2;
1430#line 76
1431  setup_rjh(rjh);
1432#line 77
1433  __cil_tmp2 = (char const   * __restrict  )"rjh: %d\n";
1434#line 77
1435  printf(__cil_tmp2, rjh);
1436#line 79
1437  chuck = 3;
1438#line 80
1439  setup_chuck(chuck);
1440#line 81
1441  __cil_tmp3 = (char const   * __restrict  )"chuck: %d\n";
1442#line 81
1443  printf(__cil_tmp3, chuck);
1444  }
1445#line 1472 "Test.c"
1446  return;
1447}
1448}
1449#line 87 "Test.c"
1450int main(void) 
1451{ int retValue_acc ;
1452  int tmp ;
1453
1454  {
1455  {
1456#line 88
1457  select_helpers();
1458#line 89
1459  select_features();
1460#line 90
1461  tmp = valid_product();
1462  }
1463#line 90
1464  if (tmp) {
1465    {
1466#line 91
1467    setup();
1468#line 92
1469    test();
1470    }
1471  } else {
1472
1473  }
1474#line 1503 "Test.c"
1475  return (retValue_acc);
1476}
1477}
1478#line 100 "Test.c"
1479void rjhSetAutoRespond(void) 
1480{ 
1481
1482  {
1483  {
1484#line 101
1485  setClientAutoResponse(rjh, 1);
1486  }
1487#line 1527 "Test.c"
1488  return;
1489}
1490}
1491#line 106 "Test.c"
1492void bobSetAddressBook(void) 
1493{ 
1494
1495  {
1496  {
1497#line 107
1498  setClientAddressBookSize(bob, 1);
1499#line 108
1500  setClientAddressBookAlias(bob, 0, rjh);
1501#line 109
1502  setClientAddressBookAddress(bob, 0, rjh);
1503#line 110
1504  setClientAddressBookAddress(bob, 1, chuck);
1505  }
1506#line 1553 "Test.c"
1507  return;
1508}
1509}
1510#line 116 "Test.c"
1511void rjhEnableForwarding(void) 
1512{ 
1513
1514  {
1515  {
1516#line 117
1517  setClientForwardReceiver(rjh, chuck);
1518  }
1519#line 1573 "Test.c"
1520  return;
1521}
1522}
1523#line 1 "scenario.o"
1524#pragma merger(0,"scenario.i","")
1525#line 1 "scenario.c"
1526void test(void) 
1527{ int op1 ;
1528  int op2 ;
1529  int op3 ;
1530  int op4 ;
1531  int op5 ;
1532  int op6 ;
1533  int op7 ;
1534  int op8 ;
1535  int op9 ;
1536  int op10 ;
1537  int op11 ;
1538  int splverifierCounter ;
1539  int tmp ;
1540  int tmp___0 ;
1541  int tmp___1 ;
1542  int tmp___2 ;
1543  int tmp___3 ;
1544  int tmp___4 ;
1545  int tmp___5 ;
1546  int tmp___6 ;
1547  int tmp___7 ;
1548  int tmp___8 ;
1549  int tmp___9 ;
1550
1551  {
1552#line 2
1553  op1 = 0;
1554#line 3
1555  op2 = 0;
1556#line 4
1557  op3 = 0;
1558#line 5
1559  op4 = 0;
1560#line 6
1561  op5 = 0;
1562#line 7
1563  op6 = 0;
1564#line 8
1565  op7 = 0;
1566#line 9
1567  op8 = 0;
1568#line 10
1569  op9 = 0;
1570#line 11
1571  op10 = 0;
1572#line 12
1573  op11 = 0;
1574#line 13
1575  splverifierCounter = 0;
1576  {
1577#line 14
1578  while (1) {
1579    while_3_continue: /* CIL Label */ ;
1580#line 14
1581    if (splverifierCounter < 4) {
1582
1583    } else {
1584      goto while_3_break;
1585    }
1586#line 15
1587    splverifierCounter = splverifierCounter + 1;
1588#line 16
1589    if (! op1) {
1590      {
1591#line 16
1592      tmp___9 = __VERIFIER_nondet_int();
1593      }
1594#line 16
1595      if (tmp___9) {
1596#line 17
1597        op1 = 1;
1598      } else {
1599        goto _L___8;
1600      }
1601    } else {
1602      _L___8: /* CIL Label */ 
1603#line 18
1604      if (! op2) {
1605        {
1606#line 18
1607        tmp___8 = __VERIFIER_nondet_int();
1608        }
1609#line 18
1610        if (tmp___8) {
1611          {
1612#line 20
1613          rjhSetAutoRespond();
1614#line 21
1615          op2 = 1;
1616          }
1617        } else {
1618          goto _L___7;
1619        }
1620      } else {
1621        _L___7: /* CIL Label */ 
1622#line 22
1623        if (! op3) {
1624          {
1625#line 22
1626          tmp___7 = __VERIFIER_nondet_int();
1627          }
1628#line 22
1629          if (tmp___7) {
1630#line 24
1631            op3 = 1;
1632          } else {
1633            goto _L___6;
1634          }
1635        } else {
1636          _L___6: /* CIL Label */ 
1637#line 25
1638          if (! op4) {
1639            {
1640#line 25
1641            tmp___6 = __VERIFIER_nondet_int();
1642            }
1643#line 25
1644            if (tmp___6) {
1645#line 27
1646              op4 = 1;
1647            } else {
1648              goto _L___5;
1649            }
1650          } else {
1651            _L___5: /* CIL Label */ 
1652#line 28
1653            if (! op5) {
1654              {
1655#line 28
1656              tmp___5 = __VERIFIER_nondet_int();
1657              }
1658#line 28
1659              if (tmp___5) {
1660#line 30
1661                op5 = 1;
1662              } else {
1663                goto _L___4;
1664              }
1665            } else {
1666              _L___4: /* CIL Label */ 
1667#line 31
1668              if (! op6) {
1669                {
1670#line 31
1671                tmp___4 = __VERIFIER_nondet_int();
1672                }
1673#line 31
1674                if (tmp___4) {
1675                  {
1676#line 33
1677                  rjhEnableForwarding();
1678#line 34
1679                  op6 = 1;
1680                  }
1681                } else {
1682                  goto _L___3;
1683                }
1684              } else {
1685                _L___3: /* CIL Label */ 
1686#line 35
1687                if (! op7) {
1688                  {
1689#line 35
1690                  tmp___3 = __VERIFIER_nondet_int();
1691                  }
1692#line 35
1693                  if (tmp___3) {
1694#line 37
1695                    op7 = 1;
1696                  } else {
1697                    goto _L___2;
1698                  }
1699                } else {
1700                  _L___2: /* CIL Label */ 
1701#line 38
1702                  if (! op8) {
1703                    {
1704#line 38
1705                    tmp___2 = __VERIFIER_nondet_int();
1706                    }
1707#line 38
1708                    if (tmp___2) {
1709                      {
1710#line 40
1711                      bobSetAddressBook();
1712#line 41
1713                      op8 = 1;
1714                      }
1715                    } else {
1716                      goto _L___1;
1717                    }
1718                  } else {
1719                    _L___1: /* CIL Label */ 
1720#line 42
1721                    if (! op9) {
1722                      {
1723#line 42
1724                      tmp___1 = __VERIFIER_nondet_int();
1725                      }
1726#line 42
1727                      if (tmp___1) {
1728#line 44
1729                        op9 = 1;
1730                      } else {
1731                        goto _L___0;
1732                      }
1733                    } else {
1734                      _L___0: /* CIL Label */ 
1735#line 45
1736                      if (! op10) {
1737                        {
1738#line 45
1739                        tmp___0 = __VERIFIER_nondet_int();
1740                        }
1741#line 45
1742                        if (tmp___0) {
1743#line 47
1744                          op10 = 1;
1745                        } else {
1746                          goto _L;
1747                        }
1748                      } else {
1749                        _L: /* CIL Label */ 
1750#line 48
1751                        if (! op11) {
1752                          {
1753#line 48
1754                          tmp = __VERIFIER_nondet_int();
1755                          }
1756#line 48
1757                          if (tmp) {
1758#line 50
1759                            op11 = 1;
1760                          } else {
1761                            goto while_3_break;
1762                          }
1763                        } else {
1764                          goto while_3_break;
1765                        }
1766                      }
1767                    }
1768                  }
1769                }
1770              }
1771            }
1772          }
1773        }
1774      }
1775    }
1776  }
1777  while_3_break: /* CIL Label */ ;
1778  }
1779  {
1780#line 54
1781  bobToRjh();
1782  }
1783#line 155 "scenario.c"
1784  return;
1785}
1786}
1787#line 1 "wsllib_check.o"
1788#pragma merger(0,"wsllib_check.i","")
1789#line 3 "wsllib_check.c"
1790void __automaton_fail(void) 
1791{ 
1792
1793  {
1794  goto ERROR;
1795  ERROR: ;
1796#line 53 "wsllib_check.c"
1797  return;
1798}
1799}
1800#line 1 "ClientLib.o"
1801#pragma merger(0,"ClientLib.i","")
1802#line 4 "ClientLib.h"
1803int initClient(void) ;
1804#line 6
1805char *getClientName(int handle ) ;
1806#line 8
1807void setClientName(int handle , char *value ) ;
1808#line 10
1809int getClientOutbuffer(int handle ) ;
1810#line 12
1811void setClientOutbuffer(int handle , int value ) ;
1812#line 14
1813int getClientAddressBookSize(int handle ) ;
1814#line 18
1815int createClientAddressBookEntry(int handle ) ;
1816#line 20
1817int getClientAddressBookAlias(int handle , int index ) ;
1818#line 24
1819int getClientAddressBookAddress(int handle , int index ) ;
1820#line 29
1821int getClientAutoResponse(int handle ) ;
1822#line 33
1823int getClientPrivateKey(int handle ) ;
1824#line 35
1825void setClientPrivateKey(int handle , int value ) ;
1826#line 37
1827int getClientKeyringSize(int handle ) ;
1828#line 39
1829int createClientKeyringEntry(int handle ) ;
1830#line 41
1831int getClientKeyringUser(int handle , int index ) ;
1832#line 43
1833void setClientKeyringUser(int handle , int index , int value ) ;
1834#line 45
1835int getClientKeyringPublicKey(int handle , int index ) ;
1836#line 47
1837void setClientKeyringPublicKey(int handle , int index , int value ) ;
1838#line 49
1839int getClientForwardReceiver(int handle ) ;
1840#line 53
1841int getClientId(int handle ) ;
1842#line 57
1843int findPublicKey(int handle , int userid ) ;
1844#line 59
1845int findClientAddressBookAlias(int handle , int userid ) ;
1846#line 5 "ClientLib.c"
1847int __ste_Client_counter  =    0;
1848#line 7 "ClientLib.c"
1849int initClient(void) 
1850{ int retValue_acc ;
1851
1852  {
1853#line 12 "ClientLib.c"
1854  if (__ste_Client_counter < 3) {
1855#line 684
1856    __ste_Client_counter = __ste_Client_counter + 1;
1857#line 684
1858    retValue_acc = __ste_Client_counter;
1859#line 686
1860    return (retValue_acc);
1861  } else {
1862#line 692 "ClientLib.c"
1863    retValue_acc = -1;
1864#line 694
1865    return (retValue_acc);
1866  }
1867#line 701 "ClientLib.c"
1868  return (retValue_acc);
1869}
1870}
1871#line 15 "ClientLib.c"
1872char *__ste_client_name0  =    (char *)0;
1873#line 17 "ClientLib.c"
1874char *__ste_client_name1  =    (char *)0;
1875#line 19 "ClientLib.c"
1876char *__ste_client_name2  =    (char *)0;
1877#line 22 "ClientLib.c"
1878char *getClientName(int handle ) 
1879{ char *retValue_acc ;
1880  void *__cil_tmp3 ;
1881
1882  {
1883#line 31 "ClientLib.c"
1884  if (handle == 1) {
1885#line 732
1886    retValue_acc = __ste_client_name0;
1887#line 734
1888    return (retValue_acc);
1889  } else {
1890#line 736
1891    if (handle == 2) {
1892#line 741
1893      retValue_acc = __ste_client_name1;
1894#line 743
1895      return (retValue_acc);
1896    } else {
1897#line 745
1898      if (handle == 3) {
1899#line 750
1900        retValue_acc = __ste_client_name2;
1901#line 752
1902        return (retValue_acc);
1903      } else {
1904#line 758 "ClientLib.c"
1905        __cil_tmp3 = (void *)0;
1906#line 758
1907        retValue_acc = (char *)__cil_tmp3;
1908#line 760
1909        return (retValue_acc);
1910      }
1911    }
1912  }
1913#line 767 "ClientLib.c"
1914  return (retValue_acc);
1915}
1916}
1917#line 34 "ClientLib.c"
1918void setClientName(int handle , char *value ) 
1919{ 
1920
1921  {
1922#line 42
1923  if (handle == 1) {
1924#line 36
1925    __ste_client_name0 = value;
1926  } else {
1927#line 37
1928    if (handle == 2) {
1929#line 38
1930      __ste_client_name1 = value;
1931    } else {
1932#line 39
1933      if (handle == 3) {
1934#line 40
1935        __ste_client_name2 = value;
1936      } else {
1937
1938      }
1939    }
1940  }
1941#line 802 "ClientLib.c"
1942  return;
1943}
1944}
1945#line 44 "ClientLib.c"
1946int __ste_client_outbuffer0  =    0;
1947#line 46 "ClientLib.c"
1948int __ste_client_outbuffer1  =    0;
1949#line 48 "ClientLib.c"
1950int __ste_client_outbuffer2  =    0;
1951#line 50 "ClientLib.c"
1952int __ste_client_outbuffer3  =    0;
1953#line 53 "ClientLib.c"
1954int getClientOutbuffer(int handle ) 
1955{ int retValue_acc ;
1956
1957  {
1958#line 62 "ClientLib.c"
1959  if (handle == 1) {
1960#line 831
1961    retValue_acc = __ste_client_outbuffer0;
1962#line 833
1963    return (retValue_acc);
1964  } else {
1965#line 835
1966    if (handle == 2) {
1967#line 840
1968      retValue_acc = __ste_client_outbuffer1;
1969#line 842
1970      return (retValue_acc);
1971    } else {
1972#line 844
1973      if (handle == 3) {
1974#line 849
1975        retValue_acc = __ste_client_outbuffer2;
1976#line 851
1977        return (retValue_acc);
1978      } else {
1979#line 857 "ClientLib.c"
1980        retValue_acc = 0;
1981#line 859
1982        return (retValue_acc);
1983      }
1984    }
1985  }
1986#line 866 "ClientLib.c"
1987  return (retValue_acc);
1988}
1989}
1990#line 65 "ClientLib.c"
1991void setClientOutbuffer(int handle , int value ) 
1992{ 
1993
1994  {
1995#line 73
1996  if (handle == 1) {
1997#line 67
1998    __ste_client_outbuffer0 = value;
1999  } else {
2000#line 68
2001    if (handle == 2) {
2002#line 69
2003      __ste_client_outbuffer1 = value;
2004    } else {
2005#line 70
2006      if (handle == 3) {
2007#line 71
2008        __ste_client_outbuffer2 = value;
2009      } else {
2010
2011      }
2012    }
2013  }
2014#line 901 "ClientLib.c"
2015  return;
2016}
2017}
2018#line 77 "ClientLib.c"
2019int __ste_ClientAddressBook_size0  =    0;
2020#line 79 "ClientLib.c"
2021int __ste_ClientAddressBook_size1  =    0;
2022#line 81 "ClientLib.c"
2023int __ste_ClientAddressBook_size2  =    0;
2024#line 84 "ClientLib.c"
2025int getClientAddressBookSize(int handle ) 
2026{ int retValue_acc ;
2027
2028  {
2029#line 93 "ClientLib.c"
2030  if (handle == 1) {
2031#line 928
2032    retValue_acc = __ste_ClientAddressBook_size0;
2033#line 930
2034    return (retValue_acc);
2035  } else {
2036#line 932
2037    if (handle == 2) {
2038#line 937
2039      retValue_acc = __ste_ClientAddressBook_size1;
2040#line 939
2041      return (retValue_acc);
2042    } else {
2043#line 941
2044      if (handle == 3) {
2045#line 946
2046        retValue_acc = __ste_ClientAddressBook_size2;
2047#line 948
2048        return (retValue_acc);
2049      } else {
2050#line 954 "ClientLib.c"
2051        retValue_acc = 0;
2052#line 956
2053        return (retValue_acc);
2054      }
2055    }
2056  }
2057#line 963 "ClientLib.c"
2058  return (retValue_acc);
2059}
2060}
2061#line 96 "ClientLib.c"
2062void setClientAddressBookSize(int handle , int value ) 
2063{ 
2064
2065  {
2066#line 104
2067  if (handle == 1) {
2068#line 98
2069    __ste_ClientAddressBook_size0 = value;
2070  } else {
2071#line 99
2072    if (handle == 2) {
2073#line 100
2074      __ste_ClientAddressBook_size1 = value;
2075    } else {
2076#line 101
2077      if (handle == 3) {
2078#line 102
2079        __ste_ClientAddressBook_size2 = value;
2080      } else {
2081
2082      }
2083    }
2084  }
2085#line 998 "ClientLib.c"
2086  return;
2087}
2088}
2089#line 106 "ClientLib.c"
2090int createClientAddressBookEntry(int handle ) 
2091{ int retValue_acc ;
2092  int size ;
2093  int tmp ;
2094  int __cil_tmp5 ;
2095
2096  {
2097  {
2098#line 107
2099  tmp = getClientAddressBookSize(handle);
2100#line 107
2101  size = tmp;
2102  }
2103#line 108 "ClientLib.c"
2104  if (size < 3) {
2105    {
2106#line 109 "ClientLib.c"
2107    __cil_tmp5 = size + 1;
2108#line 109
2109    setClientAddressBookSize(handle, __cil_tmp5);
2110#line 1025 "ClientLib.c"
2111    retValue_acc = size + 1;
2112    }
2113#line 1027
2114    return (retValue_acc);
2115  } else {
2116#line 1031 "ClientLib.c"
2117    retValue_acc = -1;
2118#line 1033
2119    return (retValue_acc);
2120  }
2121#line 1040 "ClientLib.c"
2122  return (retValue_acc);
2123}
2124}
2125#line 115 "ClientLib.c"
2126int __ste_Client_AddressBook0_Alias0  =    0;
2127#line 117 "ClientLib.c"
2128int __ste_Client_AddressBook0_Alias1  =    0;
2129#line 119 "ClientLib.c"
2130int __ste_Client_AddressBook0_Alias2  =    0;
2131#line 121 "ClientLib.c"
2132int __ste_Client_AddressBook1_Alias0  =    0;
2133#line 123 "ClientLib.c"
2134int __ste_Client_AddressBook1_Alias1  =    0;
2135#line 125 "ClientLib.c"
2136int __ste_Client_AddressBook1_Alias2  =    0;
2137#line 127 "ClientLib.c"
2138int __ste_Client_AddressBook2_Alias0  =    0;
2139#line 129 "ClientLib.c"
2140int __ste_Client_AddressBook2_Alias1  =    0;
2141#line 131 "ClientLib.c"
2142int __ste_Client_AddressBook2_Alias2  =    0;
2143#line 134 "ClientLib.c"
2144int getClientAddressBookAlias(int handle , int index ) 
2145{ int retValue_acc ;
2146
2147  {
2148#line 167
2149  if (handle == 1) {
2150#line 144 "ClientLib.c"
2151    if (index == 0) {
2152#line 1086
2153      retValue_acc = __ste_Client_AddressBook0_Alias0;
2154#line 1088
2155      return (retValue_acc);
2156    } else {
2157#line 1090
2158      if (index == 1) {
2159#line 1095
2160        retValue_acc = __ste_Client_AddressBook0_Alias1;
2161#line 1097
2162        return (retValue_acc);
2163      } else {
2164#line 1099
2165        if (index == 2) {
2166#line 1104
2167          retValue_acc = __ste_Client_AddressBook0_Alias2;
2168#line 1106
2169          return (retValue_acc);
2170        } else {
2171#line 1112
2172          retValue_acc = 0;
2173#line 1114
2174          return (retValue_acc);
2175        }
2176      }
2177    }
2178  } else {
2179#line 1116 "ClientLib.c"
2180    if (handle == 2) {
2181#line 154 "ClientLib.c"
2182      if (index == 0) {
2183#line 1124
2184        retValue_acc = __ste_Client_AddressBook1_Alias0;
2185#line 1126
2186        return (retValue_acc);
2187      } else {
2188#line 1128
2189        if (index == 1) {
2190#line 1133
2191          retValue_acc = __ste_Client_AddressBook1_Alias1;
2192#line 1135
2193          return (retValue_acc);
2194        } else {
2195#line 1137
2196          if (index == 2) {
2197#line 1142
2198            retValue_acc = __ste_Client_AddressBook1_Alias2;
2199#line 1144
2200            return (retValue_acc);
2201          } else {
2202#line 1150
2203            retValue_acc = 0;
2204#line 1152
2205            return (retValue_acc);
2206          }
2207        }
2208      }
2209    } else {
2210#line 1154 "ClientLib.c"
2211      if (handle == 3) {
2212#line 164 "ClientLib.c"
2213        if (index == 0) {
2214#line 1162
2215          retValue_acc = __ste_Client_AddressBook2_Alias0;
2216#line 1164
2217          return (retValue_acc);
2218        } else {
2219#line 1166
2220          if (index == 1) {
2221#line 1171
2222            retValue_acc = __ste_Client_AddressBook2_Alias1;
2223#line 1173
2224            return (retValue_acc);
2225          } else {
2226#line 1175
2227            if (index == 2) {
2228#line 1180
2229              retValue_acc = __ste_Client_AddressBook2_Alias2;
2230#line 1182
2231              return (retValue_acc);
2232            } else {
2233#line 1188
2234              retValue_acc = 0;
2235#line 1190
2236              return (retValue_acc);
2237            }
2238          }
2239        }
2240      } else {
2241#line 1196 "ClientLib.c"
2242        retValue_acc = 0;
2243#line 1198
2244        return (retValue_acc);
2245      }
2246    }
2247  }
2248#line 1205 "ClientLib.c"
2249  return (retValue_acc);
2250}
2251}
2252#line 171 "ClientLib.c"
2253int findClientAddressBookAlias(int handle , int userid ) 
2254{ int retValue_acc ;
2255
2256  {
2257#line 204
2258  if (handle == 1) {
2259#line 181 "ClientLib.c"
2260    if (userid == __ste_Client_AddressBook0_Alias0) {
2261#line 1233
2262      retValue_acc = 0;
2263#line 1235
2264      return (retValue_acc);
2265    } else {
2266#line 1237
2267      if (userid == __ste_Client_AddressBook0_Alias1) {
2268#line 1242
2269        retValue_acc = 1;
2270#line 1244
2271        return (retValue_acc);
2272      } else {
2273#line 1246
2274        if (userid == __ste_Client_AddressBook0_Alias2) {
2275#line 1251
2276          retValue_acc = 2;
2277#line 1253
2278          return (retValue_acc);
2279        } else {
2280#line 1259
2281          retValue_acc = -1;
2282#line 1261
2283          return (retValue_acc);
2284        }
2285      }
2286    }
2287  } else {
2288#line 1263 "ClientLib.c"
2289    if (handle == 2) {
2290#line 191 "ClientLib.c"
2291      if (userid == __ste_Client_AddressBook1_Alias0) {
2292#line 1271
2293        retValue_acc = 0;
2294#line 1273
2295        return (retValue_acc);
2296      } else {
2297#line 1275
2298        if (userid == __ste_Client_AddressBook1_Alias1) {
2299#line 1280
2300          retValue_acc = 1;
2301#line 1282
2302          return (retValue_acc);
2303        } else {
2304#line 1284
2305          if (userid == __ste_Client_AddressBook1_Alias2) {
2306#line 1289
2307            retValue_acc = 2;
2308#line 1291
2309            return (retValue_acc);
2310          } else {
2311#line 1297
2312            retValue_acc = -1;
2313#line 1299
2314            return (retValue_acc);
2315          }
2316        }
2317      }
2318    } else {
2319#line 1301 "ClientLib.c"
2320      if (handle == 3) {
2321#line 201 "ClientLib.c"
2322        if (userid == __ste_Client_AddressBook2_Alias0) {
2323#line 1309
2324          retValue_acc = 0;
2325#line 1311
2326          return (retValue_acc);
2327        } else {
2328#line 1313
2329          if (userid == __ste_Client_AddressBook2_Alias1) {
2330#line 1318
2331            retValue_acc = 1;
2332#line 1320
2333            return (retValue_acc);
2334          } else {
2335#line 1322
2336            if (userid == __ste_Client_AddressBook2_Alias2) {
2337#line 1327
2338              retValue_acc = 2;
2339#line 1329
2340              return (retValue_acc);
2341            } else {
2342#line 1335
2343              retValue_acc = -1;
2344#line 1337
2345              return (retValue_acc);
2346            }
2347          }
2348        }
2349      } else {
2350#line 1343 "ClientLib.c"
2351        retValue_acc = -1;
2352#line 1345
2353        return (retValue_acc);
2354      }
2355    }
2356  }
2357#line 1352 "ClientLib.c"
2358  return (retValue_acc);
2359}
2360}
2361#line 208 "ClientLib.c"
2362void setClientAddressBookAlias(int handle , int index , int value ) 
2363{ 
2364
2365  {
2366#line 234
2367  if (handle == 1) {
2368#line 217
2369    if (index == 0) {
2370#line 211
2371      __ste_Client_AddressBook0_Alias0 = value;
2372    } else {
2373#line 212
2374      if (index == 1) {
2375#line 213
2376        __ste_Client_AddressBook0_Alias1 = value;
2377      } else {
2378#line 214
2379        if (index == 2) {
2380#line 215
2381          __ste_Client_AddressBook0_Alias2 = value;
2382        } else {
2383
2384        }
2385      }
2386    }
2387  } else {
2388#line 216
2389    if (handle == 2) {
2390#line 225
2391      if (index == 0) {
2392#line 219
2393        __ste_Client_AddressBook1_Alias0 = value;
2394      } else {
2395#line 220
2396        if (index == 1) {
2397#line 221
2398          __ste_Client_AddressBook1_Alias1 = value;
2399        } else {
2400#line 222
2401          if (index == 2) {
2402#line 223
2403            __ste_Client_AddressBook1_Alias2 = value;
2404          } else {
2405
2406          }
2407        }
2408      }
2409    } else {
2410#line 224
2411      if (handle == 3) {
2412#line 233
2413        if (index == 0) {
2414#line 227
2415          __ste_Client_AddressBook2_Alias0 = value;
2416        } else {
2417#line 228
2418          if (index == 1) {
2419#line 229
2420            __ste_Client_AddressBook2_Alias1 = value;
2421          } else {
2422#line 230
2423            if (index == 2) {
2424#line 231
2425              __ste_Client_AddressBook2_Alias2 = value;
2426            } else {
2427
2428            }
2429          }
2430        }
2431      } else {
2432
2433      }
2434    }
2435  }
2436#line 1420 "ClientLib.c"
2437  return;
2438}
2439}
2440#line 236 "ClientLib.c"
2441int __ste_Client_AddressBook0_Address0  =    0;
2442#line 238 "ClientLib.c"
2443int __ste_Client_AddressBook0_Address1  =    0;
2444#line 240 "ClientLib.c"
2445int __ste_Client_AddressBook0_Address2  =    0;
2446#line 242 "ClientLib.c"
2447int __ste_Client_AddressBook1_Address0  =    0;
2448#line 244 "ClientLib.c"
2449int __ste_Client_AddressBook1_Address1  =    0;
2450#line 246 "ClientLib.c"
2451int __ste_Client_AddressBook1_Address2  =    0;
2452#line 248 "ClientLib.c"
2453int __ste_Client_AddressBook2_Address0  =    0;
2454#line 250 "ClientLib.c"
2455int __ste_Client_AddressBook2_Address1  =    0;
2456#line 252 "ClientLib.c"
2457int __ste_Client_AddressBook2_Address2  =    0;
2458#line 255 "ClientLib.c"
2459int getClientAddressBookAddress(int handle , int index ) 
2460{ int retValue_acc ;
2461
2462  {
2463#line 288
2464  if (handle == 1) {
2465#line 265 "ClientLib.c"
2466    if (index == 0) {
2467#line 1462
2468      retValue_acc = __ste_Client_AddressBook0_Address0;
2469#line 1464
2470      return (retValue_acc);
2471    } else {
2472#line 1466
2473      if (index == 1) {
2474#line 1471
2475        retValue_acc = __ste_Client_AddressBook0_Address1;
2476#line 1473
2477        return (retValue_acc);
2478      } else {
2479#line 1475
2480        if (index == 2) {
2481#line 1480
2482          retValue_acc = __ste_Client_AddressBook0_Address2;
2483#line 1482
2484          return (retValue_acc);
2485        } else {
2486#line 1488
2487          retValue_acc = 0;
2488#line 1490
2489          return (retValue_acc);
2490        }
2491      }
2492    }
2493  } else {
2494#line 1492 "ClientLib.c"
2495    if (handle == 2) {
2496#line 275 "ClientLib.c"
2497      if (index == 0) {
2498#line 1500
2499        retValue_acc = __ste_Client_AddressBook1_Address0;
2500#line 1502
2501        return (retValue_acc);
2502      } else {
2503#line 1504
2504        if (index == 1) {
2505#line 1509
2506          retValue_acc = __ste_Client_AddressBook1_Address1;
2507#line 1511
2508          return (retValue_acc);
2509        } else {
2510#line 1513
2511          if (index == 2) {
2512#line 1518
2513            retValue_acc = __ste_Client_AddressBook1_Address2;
2514#line 1520
2515            return (retValue_acc);
2516          } else {
2517#line 1526
2518            retValue_acc = 0;
2519#line 1528
2520            return (retValue_acc);
2521          }
2522        }
2523      }
2524    } else {
2525#line 1530 "ClientLib.c"
2526      if (handle == 3) {
2527#line 285 "ClientLib.c"
2528        if (index == 0) {
2529#line 1538
2530          retValue_acc = __ste_Client_AddressBook2_Address0;
2531#line 1540
2532          return (retValue_acc);
2533        } else {
2534#line 1542
2535          if (index == 1) {
2536#line 1547
2537            retValue_acc = __ste_Client_AddressBook2_Address1;
2538#line 1549
2539            return (retValue_acc);
2540          } else {
2541#line 1551
2542            if (index == 2) {
2543#line 1556
2544              retValue_acc = __ste_Client_AddressBook2_Address2;
2545#line 1558
2546              return (retValue_acc);
2547            } else {
2548#line 1564
2549              retValue_acc = 0;
2550#line 1566
2551              return (retValue_acc);
2552            }
2553          }
2554        }
2555      } else {
2556#line 1572 "ClientLib.c"
2557        retValue_acc = 0;
2558#line 1574
2559        return (retValue_acc);
2560      }
2561    }
2562  }
2563#line 1581 "ClientLib.c"
2564  return (retValue_acc);
2565}
2566}
2567#line 291 "ClientLib.c"
2568void setClientAddressBookAddress(int handle , int index , int value ) 
2569{ 
2570
2571  {
2572#line 317
2573  if (handle == 1) {
2574#line 300
2575    if (index == 0) {
2576#line 294
2577      __ste_Client_AddressBook0_Address0 = value;
2578    } else {
2579#line 295
2580      if (index == 1) {
2581#line 296
2582        __ste_Client_AddressBook0_Address1 = value;
2583      } else {
2584#line 297
2585        if (index == 2) {
2586#line 298
2587          __ste_Client_AddressBook0_Address2 = value;
2588        } else {
2589
2590        }
2591      }
2592    }
2593  } else {
2594#line 299
2595    if (handle == 2) {
2596#line 308
2597      if (index == 0) {
2598#line 302
2599        __ste_Client_AddressBook1_Address0 = value;
2600      } else {
2601#line 303
2602        if (index == 1) {
2603#line 304
2604          __ste_Client_AddressBook1_Address1 = value;
2605        } else {
2606#line 305
2607          if (index == 2) {
2608#line 306
2609            __ste_Client_AddressBook1_Address2 = value;
2610          } else {
2611
2612          }
2613        }
2614      }
2615    } else {
2616#line 307
2617      if (handle == 3) {
2618#line 316
2619        if (index == 0) {
2620#line 310
2621          __ste_Client_AddressBook2_Address0 = value;
2622        } else {
2623#line 311
2624          if (index == 1) {
2625#line 312
2626            __ste_Client_AddressBook2_Address1 = value;
2627          } else {
2628#line 313
2629            if (index == 2) {
2630#line 314
2631              __ste_Client_AddressBook2_Address2 = value;
2632            } else {
2633
2634            }
2635          }
2636        }
2637      } else {
2638
2639      }
2640    }
2641  }
2642#line 1649 "ClientLib.c"
2643  return;
2644}
2645}
2646#line 319 "ClientLib.c"
2647int __ste_client_autoResponse0  =    0;
2648#line 321 "ClientLib.c"
2649int __ste_client_autoResponse1  =    0;
2650#line 323 "ClientLib.c"
2651int __ste_client_autoResponse2  =    0;
2652#line 326 "ClientLib.c"
2653int getClientAutoResponse(int handle ) 
2654{ int retValue_acc ;
2655
2656  {
2657#line 335 "ClientLib.c"
2658  if (handle == 1) {
2659#line 1676
2660    retValue_acc = __ste_client_autoResponse0;
2661#line 1678
2662    return (retValue_acc);
2663  } else {
2664#line 1680
2665    if (handle == 2) {
2666#line 1685
2667      retValue_acc = __ste_client_autoResponse1;
2668#line 1687
2669      return (retValue_acc);
2670    } else {
2671#line 1689
2672      if (handle == 3) {
2673#line 1694
2674        retValue_acc = __ste_client_autoResponse2;
2675#line 1696
2676        return (retValue_acc);
2677      } else {
2678#line 1702 "ClientLib.c"
2679        retValue_acc = -1;
2680#line 1704
2681        return (retValue_acc);
2682      }
2683    }
2684  }
2685#line 1711 "ClientLib.c"
2686  return (retValue_acc);
2687}
2688}
2689#line 338 "ClientLib.c"
2690void setClientAutoResponse(int handle , int value ) 
2691{ 
2692
2693  {
2694#line 346
2695  if (handle == 1) {
2696#line 340
2697    __ste_client_autoResponse0 = value;
2698  } else {
2699#line 341
2700    if (handle == 2) {
2701#line 342
2702      __ste_client_autoResponse1 = value;
2703    } else {
2704#line 343
2705      if (handle == 3) {
2706#line 344
2707        __ste_client_autoResponse2 = value;
2708      } else {
2709
2710      }
2711    }
2712  }
2713#line 1746 "ClientLib.c"
2714  return;
2715}
2716}
2717#line 348 "ClientLib.c"
2718int __ste_client_privateKey0  =    0;
2719#line 350 "ClientLib.c"
2720int __ste_client_privateKey1  =    0;
2721#line 352 "ClientLib.c"
2722int __ste_client_privateKey2  =    0;
2723#line 355 "ClientLib.c"
2724int getClientPrivateKey(int handle ) 
2725{ int retValue_acc ;
2726
2727  {
2728#line 364 "ClientLib.c"
2729  if (handle == 1) {
2730#line 1773
2731    retValue_acc = __ste_client_privateKey0;
2732#line 1775
2733    return (retValue_acc);
2734  } else {
2735#line 1777
2736    if (handle == 2) {
2737#line 1782
2738      retValue_acc = __ste_client_privateKey1;
2739#line 1784
2740      return (retValue_acc);
2741    } else {
2742#line 1786
2743      if (handle == 3) {
2744#line 1791
2745        retValue_acc = __ste_client_privateKey2;
2746#line 1793
2747        return (retValue_acc);
2748      } else {
2749#line 1799 "ClientLib.c"
2750        retValue_acc = 0;
2751#line 1801
2752        return (retValue_acc);
2753      }
2754    }
2755  }
2756#line 1808 "ClientLib.c"
2757  return (retValue_acc);
2758}
2759}
2760#line 367 "ClientLib.c"
2761void setClientPrivateKey(int handle , int value ) 
2762{ 
2763
2764  {
2765#line 375
2766  if (handle == 1) {
2767#line 369
2768    __ste_client_privateKey0 = value;
2769  } else {
2770#line 370
2771    if (handle == 2) {
2772#line 371
2773      __ste_client_privateKey1 = value;
2774    } else {
2775#line 372
2776      if (handle == 3) {
2777#line 373
2778        __ste_client_privateKey2 = value;
2779      } else {
2780
2781      }
2782    }
2783  }
2784#line 1843 "ClientLib.c"
2785  return;
2786}
2787}
2788#line 377 "ClientLib.c"
2789int __ste_ClientKeyring_size0  =    0;
2790#line 379 "ClientLib.c"
2791int __ste_ClientKeyring_size1  =    0;
2792#line 381 "ClientLib.c"
2793int __ste_ClientKeyring_size2  =    0;
2794#line 384 "ClientLib.c"
2795int getClientKeyringSize(int handle ) 
2796{ int retValue_acc ;
2797
2798  {
2799#line 393 "ClientLib.c"
2800  if (handle == 1) {
2801#line 1870
2802    retValue_acc = __ste_ClientKeyring_size0;
2803#line 1872
2804    return (retValue_acc);
2805  } else {
2806#line 1874
2807    if (handle == 2) {
2808#line 1879
2809      retValue_acc = __ste_ClientKeyring_size1;
2810#line 1881
2811      return (retValue_acc);
2812    } else {
2813#line 1883
2814      if (handle == 3) {
2815#line 1888
2816        retValue_acc = __ste_ClientKeyring_size2;
2817#line 1890
2818        return (retValue_acc);
2819      } else {
2820#line 1896 "ClientLib.c"
2821        retValue_acc = 0;
2822#line 1898
2823        return (retValue_acc);
2824      }
2825    }
2826  }
2827#line 1905 "ClientLib.c"
2828  return (retValue_acc);
2829}
2830}
2831#line 396 "ClientLib.c"
2832void setClientKeyringSize(int handle , int value ) 
2833{ 
2834
2835  {
2836#line 404
2837  if (handle == 1) {
2838#line 398
2839    __ste_ClientKeyring_size0 = value;
2840  } else {
2841#line 399
2842    if (handle == 2) {
2843#line 400
2844      __ste_ClientKeyring_size1 = value;
2845    } else {
2846#line 401
2847      if (handle == 3) {
2848#line 402
2849        __ste_ClientKeyring_size2 = value;
2850      } else {
2851
2852      }
2853    }
2854  }
2855#line 1940 "ClientLib.c"
2856  return;
2857}
2858}
2859#line 406 "ClientLib.c"
2860int createClientKeyringEntry(int handle ) 
2861{ int retValue_acc ;
2862  int size ;
2863  int tmp ;
2864  int __cil_tmp5 ;
2865
2866  {
2867  {
2868#line 407
2869  tmp = getClientKeyringSize(handle);
2870#line 407
2871  size = tmp;
2872  }
2873#line 408 "ClientLib.c"
2874  if (size < 2) {
2875    {
2876#line 409 "ClientLib.c"
2877    __cil_tmp5 = size + 1;
2878#line 409
2879    setClientKeyringSize(handle, __cil_tmp5);
2880#line 1967 "ClientLib.c"
2881    retValue_acc = size + 1;
2882    }
2883#line 1969
2884    return (retValue_acc);
2885  } else {
2886#line 1973 "ClientLib.c"
2887    retValue_acc = -1;
2888#line 1975
2889    return (retValue_acc);
2890  }
2891#line 1982 "ClientLib.c"
2892  return (retValue_acc);
2893}
2894}
2895#line 414 "ClientLib.c"
2896int __ste_Client_Keyring0_User0  =    0;
2897#line 416 "ClientLib.c"
2898int __ste_Client_Keyring0_User1  =    0;
2899#line 418 "ClientLib.c"
2900int __ste_Client_Keyring0_User2  =    0;
2901#line 420 "ClientLib.c"
2902int __ste_Client_Keyring1_User0  =    0;
2903#line 422 "ClientLib.c"
2904int __ste_Client_Keyring1_User1  =    0;
2905#line 424 "ClientLib.c"
2906int __ste_Client_Keyring1_User2  =    0;
2907#line 426 "ClientLib.c"
2908int __ste_Client_Keyring2_User0  =    0;
2909#line 428 "ClientLib.c"
2910int __ste_Client_Keyring2_User1  =    0;
2911#line 430 "ClientLib.c"
2912int __ste_Client_Keyring2_User2  =    0;
2913#line 433 "ClientLib.c"
2914int getClientKeyringUser(int handle , int index ) 
2915{ int retValue_acc ;
2916
2917  {
2918#line 466
2919  if (handle == 1) {
2920#line 443 "ClientLib.c"
2921    if (index == 0) {
2922#line 2028
2923      retValue_acc = __ste_Client_Keyring0_User0;
2924#line 2030
2925      return (retValue_acc);
2926    } else {
2927#line 2032
2928      if (index == 1) {
2929#line 2037
2930        retValue_acc = __ste_Client_Keyring0_User1;
2931#line 2039
2932        return (retValue_acc);
2933      } else {
2934#line 2045
2935        retValue_acc = 0;
2936#line 2047
2937        return (retValue_acc);
2938      }
2939    }
2940  } else {
2941#line 2049 "ClientLib.c"
2942    if (handle == 2) {
2943#line 453 "ClientLib.c"
2944      if (index == 0) {
2945#line 2057
2946        retValue_acc = __ste_Client_Keyring1_User0;
2947#line 2059
2948        return (retValue_acc);
2949      } else {
2950#line 2061
2951        if (index == 1) {
2952#line 2066
2953          retValue_acc = __ste_Client_Keyring1_User1;
2954#line 2068
2955          return (retValue_acc);
2956        } else {
2957#line 2074
2958          retValue_acc = 0;
2959#line 2076
2960          return (retValue_acc);
2961        }
2962      }
2963    } else {
2964#line 2078 "ClientLib.c"
2965      if (handle == 3) {
2966#line 463 "ClientLib.c"
2967        if (index == 0) {
2968#line 2086
2969          retValue_acc = __ste_Client_Keyring2_User0;
2970#line 2088
2971          return (retValue_acc);
2972        } else {
2973#line 2090
2974          if (index == 1) {
2975#line 2095
2976            retValue_acc = __ste_Client_Keyring2_User1;
2977#line 2097
2978            return (retValue_acc);
2979          } else {
2980#line 2103
2981            retValue_acc = 0;
2982#line 2105
2983            return (retValue_acc);
2984          }
2985        }
2986      } else {
2987#line 2111 "ClientLib.c"
2988        retValue_acc = 0;
2989#line 2113
2990        return (retValue_acc);
2991      }
2992    }
2993  }
2994#line 2120 "ClientLib.c"
2995  return (retValue_acc);
2996}
2997}
2998#line 473 "ClientLib.c"
2999void setClientKeyringUser(int handle , int index , int value ) 
3000{ 
3001
3002  {
3003#line 499
3004  if (handle == 1) {
3005#line 482
3006    if (index == 0) {
3007#line 476
3008      __ste_Client_Keyring0_User0 = value;
3009    } else {
3010#line 477
3011      if (index == 1) {
3012#line 478
3013        __ste_Client_Keyring0_User1 = value;
3014      } else {
3015
3016      }
3017    }
3018  } else {
3019#line 479
3020    if (handle == 2) {
3021#line 490
3022      if (index == 0) {
3023#line 484
3024        __ste_Client_Keyring1_User0 = value;
3025      } else {
3026#line 485
3027        if (index == 1) {
3028#line 486
3029          __ste_Client_Keyring1_User1 = value;
3030        } else {
3031
3032        }
3033      }
3034    } else {
3035#line 487
3036      if (handle == 3) {
3037#line 498
3038        if (index == 0) {
3039#line 492
3040          __ste_Client_Keyring2_User0 = value;
3041        } else {
3042#line 493
3043          if (index == 1) {
3044#line 494
3045            __ste_Client_Keyring2_User1 = value;
3046          } else {
3047
3048          }
3049        }
3050      } else {
3051
3052      }
3053    }
3054  }
3055#line 2176 "ClientLib.c"
3056  return;
3057}
3058}
3059#line 501 "ClientLib.c"
3060int __ste_Client_Keyring0_PublicKey0  =    0;
3061#line 503 "ClientLib.c"
3062int __ste_Client_Keyring0_PublicKey1  =    0;
3063#line 505 "ClientLib.c"
3064int __ste_Client_Keyring0_PublicKey2  =    0;
3065#line 507 "ClientLib.c"
3066int __ste_Client_Keyring1_PublicKey0  =    0;
3067#line 509 "ClientLib.c"
3068int __ste_Client_Keyring1_PublicKey1  =    0;
3069#line 511 "ClientLib.c"
3070int __ste_Client_Keyring1_PublicKey2  =    0;
3071#line 513 "ClientLib.c"
3072int __ste_Client_Keyring2_PublicKey0  =    0;
3073#line 515 "ClientLib.c"
3074int __ste_Client_Keyring2_PublicKey1  =    0;
3075#line 517 "ClientLib.c"
3076int __ste_Client_Keyring2_PublicKey2  =    0;
3077#line 520 "ClientLib.c"
3078int getClientKeyringPublicKey(int handle , int index ) 
3079{ int retValue_acc ;
3080
3081  {
3082#line 553
3083  if (handle == 1) {
3084#line 530 "ClientLib.c"
3085    if (index == 0) {
3086#line 2218
3087      retValue_acc = __ste_Client_Keyring0_PublicKey0;
3088#line 2220
3089      return (retValue_acc);
3090    } else {
3091#line 2222
3092      if (index == 1) {
3093#line 2227
3094        retValue_acc = __ste_Client_Keyring0_PublicKey1;
3095#line 2229
3096        return (retValue_acc);
3097      } else {
3098#line 2235
3099        retValue_acc = 0;
3100#line 2237
3101        return (retValue_acc);
3102      }
3103    }
3104  } else {
3105#line 2239 "ClientLib.c"
3106    if (handle == 2) {
3107#line 540 "ClientLib.c"
3108      if (index == 0) {
3109#line 2247
3110        retValue_acc = __ste_Client_Keyring1_PublicKey0;
3111#line 2249
3112        return (retValue_acc);
3113      } else {
3114#line 2251
3115        if (index == 1) {
3116#line 2256
3117          retValue_acc = __ste_Client_Keyring1_PublicKey1;
3118#line 2258
3119          return (retValue_acc);
3120        } else {
3121#line 2264
3122          retValue_acc = 0;
3123#line 2266
3124          return (retValue_acc);
3125        }
3126      }
3127    } else {
3128#line 2268 "ClientLib.c"
3129      if (handle == 3) {
3130#line 550 "ClientLib.c"
3131        if (index == 0) {
3132#line 2276
3133          retValue_acc = __ste_Client_Keyring2_PublicKey0;
3134#line 2278
3135          return (retValue_acc);
3136        } else {
3137#line 2280
3138          if (index == 1) {
3139#line 2285
3140            retValue_acc = __ste_Client_Keyring2_PublicKey1;
3141#line 2287
3142            return (retValue_acc);
3143          } else {
3144#line 2293
3145            retValue_acc = 0;
3146#line 2295
3147            return (retValue_acc);
3148          }
3149        }
3150      } else {
3151#line 2301 "ClientLib.c"
3152        retValue_acc = 0;
3153#line 2303
3154        return (retValue_acc);
3155      }
3156    }
3157  }
3158#line 2310 "ClientLib.c"
3159  return (retValue_acc);
3160}
3161}
3162#line 557 "ClientLib.c"
3163int findPublicKey(int handle , int userid ) 
3164{ int retValue_acc ;
3165
3166  {
3167#line 591
3168  if (handle == 1) {
3169#line 568 "ClientLib.c"
3170    if (userid == __ste_Client_Keyring0_User0) {
3171#line 2338
3172      retValue_acc = __ste_Client_Keyring0_PublicKey0;
3173#line 2340
3174      return (retValue_acc);
3175    } else {
3176#line 2342
3177      if (userid == __ste_Client_Keyring0_User1) {
3178#line 2347
3179        retValue_acc = __ste_Client_Keyring0_PublicKey1;
3180#line 2349
3181        return (retValue_acc);
3182      } else {
3183#line 2355
3184        retValue_acc = 0;
3185#line 2357
3186        return (retValue_acc);
3187      }
3188    }
3189  } else {
3190#line 2359 "ClientLib.c"
3191    if (handle == 2) {
3192#line 578 "ClientLib.c"
3193      if (userid == __ste_Client_Keyring1_User0) {
3194#line 2367
3195        retValue_acc = __ste_Client_Keyring1_PublicKey0;
3196#line 2369
3197        return (retValue_acc);
3198      } else {
3199#line 2371
3200        if (userid == __ste_Client_Keyring1_User1) {
3201#line 2376
3202          retValue_acc = __ste_Client_Keyring1_PublicKey1;
3203#line 2378
3204          return (retValue_acc);
3205        } else {
3206#line 2384
3207          retValue_acc = 0;
3208#line 2386
3209          return (retValue_acc);
3210        }
3211      }
3212    } else {
3213#line 2388 "ClientLib.c"
3214      if (handle == 3) {
3215#line 588 "ClientLib.c"
3216        if (userid == __ste_Client_Keyring2_User0) {
3217#line 2396
3218          retValue_acc = __ste_Client_Keyring2_PublicKey0;
3219#line 2398
3220          return (retValue_acc);
3221        } else {
3222#line 2400
3223          if (userid == __ste_Client_Keyring2_User1) {
3224#line 2405
3225            retValue_acc = __ste_Client_Keyring2_PublicKey1;
3226#line 2407
3227            return (retValue_acc);
3228          } else {
3229#line 2413
3230            retValue_acc = 0;
3231#line 2415
3232            return (retValue_acc);
3233          }
3234        }
3235      } else {
3236#line 2421 "ClientLib.c"
3237        retValue_acc = 0;
3238#line 2423
3239        return (retValue_acc);
3240      }
3241    }
3242  }
3243#line 2430 "ClientLib.c"
3244  return (retValue_acc);
3245}
3246}
3247#line 595 "ClientLib.c"
3248void setClientKeyringPublicKey(int handle , int index , int value ) 
3249{ 
3250
3251  {
3252#line 621
3253  if (handle == 1) {
3254#line 604
3255    if (index == 0) {
3256#line 598
3257      __ste_Client_Keyring0_PublicKey0 = value;
3258    } else {
3259#line 599
3260      if (index == 1) {
3261#line 600
3262        __ste_Client_Keyring0_PublicKey1 = value;
3263      } else {
3264
3265      }
3266    }
3267  } else {
3268#line 601
3269    if (handle == 2) {
3270#line 612
3271      if (index == 0) {
3272#line 606
3273        __ste_Client_Keyring1_PublicKey0 = value;
3274      } else {
3275#line 607
3276        if (index == 1) {
3277#line 608
3278          __ste_Client_Keyring1_PublicKey1 = value;
3279        } else {
3280
3281        }
3282      }
3283    } else {
3284#line 609
3285      if (handle == 3) {
3286#line 620
3287        if (index == 0) {
3288#line 614
3289          __ste_Client_Keyring2_PublicKey0 = value;
3290        } else {
3291#line 615
3292          if (index == 1) {
3293#line 616
3294            __ste_Client_Keyring2_PublicKey1 = value;
3295          } else {
3296
3297          }
3298        }
3299      } else {
3300
3301      }
3302    }
3303  }
3304#line 2486 "ClientLib.c"
3305  return;
3306}
3307}
3308#line 623 "ClientLib.c"
3309int __ste_client_forwardReceiver0  =    0;
3310#line 625 "ClientLib.c"
3311int __ste_client_forwardReceiver1  =    0;
3312#line 627 "ClientLib.c"
3313int __ste_client_forwardReceiver2  =    0;
3314#line 629 "ClientLib.c"
3315int __ste_client_forwardReceiver3  =    0;
3316#line 631 "ClientLib.c"
3317int getClientForwardReceiver(int handle ) 
3318{ int retValue_acc ;
3319
3320  {
3321#line 640 "ClientLib.c"
3322  if (handle == 1) {
3323#line 2515
3324    retValue_acc = __ste_client_forwardReceiver0;
3325#line 2517
3326    return (retValue_acc);
3327  } else {
3328#line 2519
3329    if (handle == 2) {
3330#line 2524
3331      retValue_acc = __ste_client_forwardReceiver1;
3332#line 2526
3333      return (retValue_acc);
3334    } else {
3335#line 2528
3336      if (handle == 3) {
3337#line 2533
3338        retValue_acc = __ste_client_forwardReceiver2;
3339#line 2535
3340        return (retValue_acc);
3341      } else {
3342#line 2541 "ClientLib.c"
3343        retValue_acc = 0;
3344#line 2543
3345        return (retValue_acc);
3346      }
3347    }
3348  }
3349#line 2550 "ClientLib.c"
3350  return (retValue_acc);
3351}
3352}
3353#line 643 "ClientLib.c"
3354void setClientForwardReceiver(int handle , int value ) 
3355{ 
3356
3357  {
3358#line 651
3359  if (handle == 1) {
3360#line 645
3361    __ste_client_forwardReceiver0 = value;
3362  } else {
3363#line 646
3364    if (handle == 2) {
3365#line 647
3366      __ste_client_forwardReceiver1 = value;
3367    } else {
3368#line 648
3369      if (handle == 3) {
3370#line 649
3371        __ste_client_forwardReceiver2 = value;
3372      } else {
3373
3374      }
3375    }
3376  }
3377#line 2585 "ClientLib.c"
3378  return;
3379}
3380}
3381#line 653 "ClientLib.c"
3382int __ste_client_idCounter0  =    0;
3383#line 655 "ClientLib.c"
3384int __ste_client_idCounter1  =    0;
3385#line 657 "ClientLib.c"
3386int __ste_client_idCounter2  =    0;
3387#line 660 "ClientLib.c"
3388int getClientId(int handle ) 
3389{ int retValue_acc ;
3390
3391  {
3392#line 669 "ClientLib.c"
3393  if (handle == 1) {
3394#line 2612
3395    retValue_acc = __ste_client_idCounter0;
3396#line 2614
3397    return (retValue_acc);
3398  } else {
3399#line 2616
3400    if (handle == 2) {
3401#line 2621
3402      retValue_acc = __ste_client_idCounter1;
3403#line 2623
3404      return (retValue_acc);
3405    } else {
3406#line 2625
3407      if (handle == 3) {
3408#line 2630
3409        retValue_acc = __ste_client_idCounter2;
3410#line 2632
3411        return (retValue_acc);
3412      } else {
3413#line 2638 "ClientLib.c"
3414        retValue_acc = 0;
3415#line 2640
3416        return (retValue_acc);
3417      }
3418    }
3419  }
3420#line 2647 "ClientLib.c"
3421  return (retValue_acc);
3422}
3423}
3424#line 672 "ClientLib.c"
3425void setClientId(int handle , int value ) 
3426{ 
3427
3428  {
3429#line 680
3430  if (handle == 1) {
3431#line 674
3432    __ste_client_idCounter0 = value;
3433  } else {
3434#line 675
3435    if (handle == 2) {
3436#line 676
3437      __ste_client_idCounter1 = value;
3438    } else {
3439#line 677
3440      if (handle == 3) {
3441#line 678
3442        __ste_client_idCounter2 = value;
3443      } else {
3444
3445      }
3446    }
3447  }
3448#line 2682 "ClientLib.c"
3449  return;
3450}
3451}
3452#line 1 "Util.o"
3453#pragma merger(0,"Util.i","")
3454#line 1 "Util.h"
3455int prompt(char *msg ) ;
3456#line 9 "Util.c"
3457int prompt(char *msg ) 
3458{ int retValue_acc ;
3459  int retval ;
3460  char const   * __restrict  __cil_tmp4 ;
3461
3462  {
3463  {
3464#line 10
3465  __cil_tmp4 = (char const   * __restrict  )"%s\n";
3466#line 10
3467  printf(__cil_tmp4, msg);
3468#line 518 "Util.c"
3469  retValue_acc = retval;
3470  }
3471#line 520
3472  return (retValue_acc);
3473#line 527
3474  return (retValue_acc);
3475}
3476}
3477#line 1 "Client.o"
3478#pragma merger(0,"Client.i","")
3479#line 6 "Email.h"
3480void printMail(int msg ) ;
3481#line 12
3482int createEmail(int from , int to ) ;
3483#line 14 "Client.h"
3484void queue(int client , int msg ) ;
3485#line 24
3486void mail(int client , int msg ) ;
3487#line 28
3488void deliver(int client , int msg ) ;
3489#line 30
3490void incoming(int client , int msg ) ;
3491#line 32
3492int createClient(char *name ) ;
3493#line 36
3494void autoRespond(int client , int msg ) ;
3495#line 37
3496void sendToAddressBook(int client , int msg ) ;
3497#line 39
3498void forward(int client , int msg ) ;
3499#line 6 "Client.c"
3500int queue_empty  =    1;
3501#line 9 "Client.c"
3502int queued_message  ;
3503#line 12 "Client.c"
3504int queued_client  ;
3505#line 18 "Client.c"
3506void mail(int client , int msg ) 
3507{ int tmp ;
3508
3509  {
3510  {
3511#line 19
3512  puts("mail sent");
3513#line 20
3514  tmp = getEmailTo(msg);
3515#line 20
3516  incoming(tmp, msg);
3517  }
3518#line 731 "Client.c"
3519  return;
3520}
3521}
3522#line 27 "Client.c"
3523void outgoing__wrappee__AutoResponder(int client , int msg ) 
3524{ int tmp ;
3525
3526  {
3527  {
3528#line 28
3529  tmp = getClientId(client);
3530#line 28
3531  setEmailFrom(msg, tmp);
3532#line 29
3533  mail(client, msg);
3534  }
3535#line 753 "Client.c"
3536  return;
3537}
3538}
3539#line 36 "Client.c"
3540void outgoing(int client , int msg ) 
3541{ int size ;
3542  int tmp ;
3543  int receiver ;
3544  int tmp___0 ;
3545  int second ;
3546  int tmp___1 ;
3547  int tmp___2 ;
3548
3549  {
3550  {
3551#line 38
3552  tmp = getClientAddressBookSize(client);
3553#line 38
3554  size = tmp;
3555  }
3556#line 40
3557  if (size) {
3558    {
3559#line 41
3560    sendToAddressBook(client, msg);
3561#line 42
3562    puts("sending to alias in address book\n");
3563#line 43
3564    tmp___0 = getEmailTo(msg);
3565#line 43
3566    receiver = tmp___0;
3567#line 45
3568    puts("sending to second receipient\n");
3569#line 46
3570    tmp___1 = getClientAddressBookAddress(client, 1);
3571#line 46
3572    second = tmp___1;
3573#line 47
3574    setEmailTo(msg, second);
3575#line 48
3576    outgoing__wrappee__AutoResponder(client, msg);
3577#line 51
3578    tmp___2 = getClientAddressBookAddress(client, 0);
3579#line 51
3580    setEmailTo(msg, tmp___2);
3581#line 52
3582    outgoing__wrappee__AutoResponder(client, msg);
3583    }
3584  } else {
3585    {
3586#line 54
3587    outgoing__wrappee__AutoResponder(client, msg);
3588    }
3589  }
3590#line 803 "Client.c"
3591  return;
3592}
3593}
3594#line 63 "Client.c"
3595void deliver(int client , int msg ) 
3596{ 
3597
3598  {
3599  {
3600#line 64
3601  puts("mail delivered\n");
3602  }
3603#line 823 "Client.c"
3604  return;
3605}
3606}
3607#line 71 "Client.c"
3608void incoming__wrappee__Base(int client , int msg ) 
3609{ 
3610
3611  {
3612  {
3613#line 72
3614  deliver(client, msg);
3615  }
3616#line 843 "Client.c"
3617  return;
3618}
3619}
3620#line 78 "Client.c"
3621void incoming__wrappee__AddressBook(int client , int msg ) 
3622{ int tmp ;
3623
3624  {
3625  {
3626#line 79
3627  incoming__wrappee__Base(client, msg);
3628#line 80
3629  tmp = getClientAutoResponse(client);
3630  }
3631#line 80
3632  if (tmp) {
3633    {
3634#line 81
3635    autoRespond(client, msg);
3636    }
3637  } else {
3638
3639  }
3640#line 868 "Client.c"
3641  return;
3642}
3643}
3644#line 88 "Client.c"
3645void incoming(int client , int msg ) 
3646{ int fwreceiver ;
3647  int tmp ;
3648
3649  {
3650  {
3651#line 89
3652  incoming__wrappee__AddressBook(client, msg);
3653#line 90
3654  tmp = getClientForwardReceiver(client);
3655#line 90
3656  fwreceiver = tmp;
3657  }
3658#line 91
3659  if (fwreceiver) {
3660    {
3661#line 93
3662    setEmailTo(msg, fwreceiver);
3663#line 94
3664    forward(client, msg);
3665    }
3666  } else {
3667
3668  }
3669#line 899 "Client.c"
3670  return;
3671}
3672}
3673#line 100 "Client.c"
3674int createClient(char *name ) 
3675{ int retValue_acc ;
3676  int client ;
3677  int tmp ;
3678
3679  {
3680  {
3681#line 101
3682  tmp = initClient();
3683#line 101
3684  client = tmp;
3685#line 921 "Client.c"
3686  retValue_acc = client;
3687  }
3688#line 923
3689  return (retValue_acc);
3690#line 930
3691  return (retValue_acc);
3692}
3693}
3694#line 108 "Client.c"
3695void sendEmail(int sender , int receiver ) 
3696{ int email ;
3697  int tmp ;
3698
3699  {
3700  {
3701#line 109
3702  tmp = createEmail(0, receiver);
3703#line 109
3704  email = tmp;
3705#line 110
3706  outgoing(sender, email);
3707  }
3708#line 958 "Client.c"
3709  return;
3710}
3711}
3712#line 118 "Client.c"
3713void queue(int client , int msg ) 
3714{ 
3715
3716  {
3717#line 119
3718  queue_empty = 0;
3719#line 120
3720  queued_message = msg;
3721#line 121
3722  queued_client = client;
3723#line 982 "Client.c"
3724  return;
3725}
3726}
3727#line 127 "Client.c"
3728int is_queue_empty(void) 
3729{ int retValue_acc ;
3730
3731  {
3732#line 1000 "Client.c"
3733  retValue_acc = queue_empty;
3734#line 1002
3735  return (retValue_acc);
3736#line 1009
3737  return (retValue_acc);
3738}
3739}
3740#line 134 "Client.c"
3741int get_queued_client(void) 
3742{ int retValue_acc ;
3743
3744  {
3745#line 1031 "Client.c"
3746  retValue_acc = queued_client;
3747#line 1033
3748  return (retValue_acc);
3749#line 1040
3750  return (retValue_acc);
3751}
3752}
3753#line 141 "Client.c"
3754int get_queued_email(void) 
3755{ int retValue_acc ;
3756
3757  {
3758#line 1062 "Client.c"
3759  retValue_acc = queued_message;
3760#line 1064
3761  return (retValue_acc);
3762#line 1071
3763  return (retValue_acc);
3764}
3765}
3766#line 582 "/usr/include/string.h"
3767void __utac_acc__DecryptAutoResponder_spec__1(int client , int msg ) ;
3768#line 148 "Client.c"
3769void autoRespond(int client , int msg ) 
3770{ int __utac__ad__arg1 ;
3771  int __utac__ad__arg2 ;
3772  int sender ;
3773  int tmp ;
3774
3775  {
3776  {
3777#line 1202 "Client.c"
3778  __utac__ad__arg1 = client;
3779#line 1203
3780  __utac__ad__arg2 = msg;
3781#line 1204
3782  __utac_acc__DecryptAutoResponder_spec__1(__utac__ad__arg1, __utac__ad__arg2);
3783#line 149 "Client.c"
3784  puts("sending autoresponse\n");
3785#line 150
3786  tmp = getEmailFrom(msg);
3787#line 150
3788  sender = tmp;
3789#line 151
3790  setEmailTo(msg, sender);
3791#line 152
3792  queue(client, msg);
3793  }
3794#line 1227 "Client.c"
3795  return;
3796}
3797}
3798#line 157 "Client.c"
3799void sendToAddressBook(int client , int msg ) 
3800{ 
3801
3802  {
3803#line 1245 "Client.c"
3804  return;
3805}
3806}
3807#line 163 "Client.c"
3808void forward(int client , int msg ) 
3809{ 
3810
3811  {
3812  {
3813#line 164
3814  puts("Forwarding message.\n");
3815#line 165
3816  printMail(msg);
3817#line 166
3818  queue(client, msg);
3819  }
3820#line 1269 "Client.c"
3821  return;
3822}
3823}
3824#line 1 "DecryptAutoResponder_spec.o"
3825#pragma merger(0,"DecryptAutoResponder_spec.i","")
3826#line 9 "Email.h"
3827int isReadable(int msg ) ;
3828#line 11 "DecryptAutoResponder_spec.c"
3829void __utac_acc__DecryptAutoResponder_spec__1(int client , int msg ) 
3830{ int tmp ;
3831
3832  {
3833  {
3834#line 13
3835  puts("before autoRespond\n");
3836#line 14
3837  tmp = isReadable(msg);
3838  }
3839#line 14
3840  if (tmp) {
3841
3842  } else {
3843    {
3844#line 15
3845    __automaton_fail();
3846    }
3847  }
3848#line 15
3849  return;
3850}
3851}
3852#line 1 "Email.o"
3853#pragma merger(0,"Email.i","")
3854#line 15 "Email.h"
3855int cloneEmail(int msg ) ;
3856#line 9 "Email.c"
3857void printMail(int msg ) 
3858{ int tmp ;
3859  int tmp___0 ;
3860  int tmp___1 ;
3861  int tmp___2 ;
3862  char const   * __restrict  __cil_tmp6 ;
3863  char const   * __restrict  __cil_tmp7 ;
3864  char const   * __restrict  __cil_tmp8 ;
3865  char const   * __restrict  __cil_tmp9 ;
3866
3867  {
3868  {
3869#line 10
3870  tmp = getEmailId(msg);
3871#line 10
3872  __cil_tmp6 = (char const   * __restrict  )"ID:\n  %i\n";
3873#line 10
3874  printf(__cil_tmp6, tmp);
3875#line 11
3876  tmp___0 = getEmailFrom(msg);
3877#line 11
3878  __cil_tmp7 = (char const   * __restrict  )"FROM:\n  %i\n";
3879#line 11
3880  printf(__cil_tmp7, tmp___0);
3881#line 12
3882  tmp___1 = getEmailTo(msg);
3883#line 12
3884  __cil_tmp8 = (char const   * __restrict  )"TO:\n  %i\n";
3885#line 12
3886  printf(__cil_tmp8, tmp___1);
3887#line 13
3888  tmp___2 = isReadable(msg);
3889#line 13
3890  __cil_tmp9 = (char const   * __restrict  )"IS_READABLE\n  %i\n";
3891#line 13
3892  printf(__cil_tmp9, tmp___2);
3893  }
3894#line 601 "Email.c"
3895  return;
3896}
3897}
3898#line 19 "Email.c"
3899int isReadable(int msg ) 
3900{ int retValue_acc ;
3901
3902  {
3903#line 619 "Email.c"
3904  retValue_acc = 1;
3905#line 621
3906  return (retValue_acc);
3907#line 628
3908  return (retValue_acc);
3909}
3910}
3911#line 24 "Email.c"
3912int cloneEmail(int msg ) 
3913{ int retValue_acc ;
3914
3915  {
3916#line 650 "Email.c"
3917  retValue_acc = msg;
3918#line 652
3919  return (retValue_acc);
3920#line 659
3921  return (retValue_acc);
3922}
3923}
3924#line 29 "Email.c"
3925int createEmail(int from , int to ) 
3926{ int retValue_acc ;
3927  int msg ;
3928
3929  {
3930  {
3931#line 30
3932  msg = 1;
3933#line 31
3934  setEmailFrom(msg, from);
3935#line 32
3936  setEmailTo(msg, to);
3937#line 689 "Email.c"
3938  retValue_acc = msg;
3939  }
3940#line 691
3941  return (retValue_acc);
3942#line 698
3943  return (retValue_acc);
3944}
3945}