Showing error 1736

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