text:
What explains anorectal chlamydia infection in women? Implications of a mathematical model for test and treatment strategies
Janneke C M Heijne1,
Geneviève A F S van Liere2,3,
Christian J P A Hoebe2,3,
Johannes A Bogaards1,
Birgit H B van Benthem1,
Nicole H T M Dukers-Muijrers2,3
1Centre for Infectious Diseases Control, National Institute for Public Health and the Environment (RIVM), Bilthoven, The Netherlands
2Department of Sexual Health, Infectious Diseases and Environmental Health, South Limburg Public Health Service, Geleen, Netherlands
3Department of Medical Microbiology, Care and Public Health Research Institute (CAPHRI), Maastricht University Medical Center (MUMC+), Maastricht, Netherlands
Correspondence to Dr Janneke Heijne, National Institute of Public Health and the Environment, P. O. Box 1, Bilthoven 3720 BA, The Netherlands; janneke.heijne{at}rivm.nl
Objectives Female anorectal Chlamydia trachomatis (chlamydia) infections are common irrespective of recent anal sex. We explored the role of anorectal infections in chlamydia transmission and estimated the impact of interventions aimed at improved detection and treatment of anorectal infections.
Methods We developed a pair compartmental model of heterosexuals aged 15–29 years attending STI clinics, in which women can be susceptible to or infected with chlamydia urogenitally and/or anorectally and men urogenitally. Transmission probabilities per vaginal and anal sex act, together with an autoinoculation probability, were estimated by fitting to anatomic site-specific prevalence data (14% urogenital; 11% anorectal prevalence). We investigated the 10-year reduction in female chlamydia prevalence of interventions (universal anorectal testing of female STI clinic attendees or doxycycline use for urogenital chlamydia) relative to continued current care (anorectal testing on indication and doxycycline for anorectal and azithromycin for urogenital chlamydia).
Results The transmission probability per anal sex act was 5.8% (IQR 3.0–8.3%), per vaginal sex act 2.0% (IQR 1.7–2.2%) and the daily autoinoculation probability was 0.7% (IQR 0.5–1.0%). More anorectal chlamydia infections were caused by autoinoculation than by recent anal sex. Universal anorectal testing reduced population prevalence modestly with 8.7% (IQR 7.6–9.7%), yet the reduction was double that of doxycycline use for urogenital infections (4.3% (IQR 3.5–5.3%)) relative to continued current care.
Conclusions Autoinoculation between anatomic sites in women might play a role in sustaining high chlamydia prevalence. A shift to more anorectal testing of female STI clinic attendees may be considered for its (albeit modest) impact on reducing prevalence.
ANOGENITAL CONDITIONS
http://dx.doi.org/10.1136/sextrans-2016-052786
Chlamydia trachomatis (chlamydia) is the most commonly reported bacterial STI worldwide and,1 when untreated, can lead to serious long-term complications including pelvic inflammatory disease and infertility. As well as urogenital infections, chlamydia can also cause anorectal infections, with anorectal prevalences found between 5.6% and 17.5%.2 Women with anorectal chlamydia infection often have a concurrent urogenital chlamydia infection (71–95%) and vice versa (33–83% with a urogenital infection have a concurrent anorectal infection).2
Anorectal testing for chlamydia is often advised on indication in women with anal symptoms or recent anal sex.3–5 Studies on routine universal anorectal testing consistently found similar anorectal chlamydia prevalence in women with or without anal symptoms or history of anal sex.6–8 This suggests that by testing on indication only, many anorectal chlamydia infections are missed. Furthermore, when women are infected at both locations, but not tested for anorectal infection, they receive the standard treatment for a urogenital infection, which is often azithromycin.3 ,5 ,9 A recent randomised controlled trial (RCT) found high efficacies for azithromycin (97%) and doxycycline (100%) in treating urogenital infections.10 However, there are no RCTs on the efficacy of azithromycin and doxycycline in clearing anorectal infections and a recent systematic review, based on observational studies, showed reduced effectiveness for treating anorectal chlamydia with azithromycin compared with doxycycline (83% vs 99.6%).11 These findings suggest that many anorectal infections are suboptimally treated with the azithromycin provided for urogenital chlamydia, which could be a potential obstacle for controlling chlamydia transmission and its complications.
The high co-occurrence of anorectal and urogenital infections in women might be indicative of an autoinoculation process in which one anatomic site is inoculated with infective bodies from the other site.12 Taking autoinoculation into account, it has been calculated that the chance of a woman remaining free of urogenital chlamydia infection after treatment could be almost six times higher for doxycycline compared with azithromycin.13 However, the role of autoinoculation in chlamydia transmission has not yet been quantified.
Insights into the role of anorectal infections in chlamydia transmission and possible autoinoculation routes are needed for optimising testing and treatment guidelines. Mathematical modelling is a tool for understanding transmission of infections in a population and for estimating the impact of interventions. Here, the first aim is to develop a mathematical model to quantify the contribution of anorectal infections and autoinoculation in chlamydia transmission in women. The second aim is to estimate the population-level impact of interventions aimed at reducing anorectal chlamydia infections.
Dynamic transmission model
We used a deterministic pair compartmental model describing the pair formation and separation of heterosexual men and women aged 15–29 years attending STI clinics. The model is based on existing general population pair models.14 Here, the pair model was extended in two ways. First, two anatomical infection locations were incorporated for women: anorectal and urogenital location. Since anorectal infections among heterosexual men are scarce,2 only the male urogenital location was incorporated. Second, the model was extended to include two types of partnerships: one that includes anal sex as well as vaginal sex and one with vaginal sex only. The partnerships can be formed and broken up at any time. A detailed description of the model is given in the online supplementary text S1, and the parameters and their values are shown in table 1 and online supplementary tables S1 and S2.
Parameters of the model and corresponding values reflecting a heterosexual population of men and women aged 15–29 years visiting STI clinics (excluding swingers and prostitutes) receiving the standard of care
[sextrans-2016-052786supp.pdf]
In brief, at both anatomic locations, individuals can either be susceptible or infected. We assumed natural clearance of infection to be site-specific, meaning that women can clear the infection at one anatomical location but stay infected at the other anatomical location. After treatment, or after site-specific natural clearance, individuals can become susceptible again. There are three ways of becoming infected. First, a transmission probability per vaginal sex act is included, leading to urogenital infections in both men and women. In order to confine the number of unknown parameters, we assumed the same probability for male-to-female as female-to-male transmission. Second, a transmission probability per anal sex act is included, leading to anorectal infections in women and urogenital infections in men, again with the same probability for transmission in either direction. Third, for women only, an autoinoculation process is included as a daily probability that an urogenital infection leads to an anorectal infection or that an anorectal infection leads to an urogenital infection, with the same probability in either direction.
Empirical data
We used data from female STI clinic visitors attending the South Limburg Public Health Service between May 2012 and July 2013, where patients aged 18 years and older were offered routine universal chlamydia testing on both anatomical locations.6 Samples were tested for chlamydia using nucleic acid amplification assays (NAAT). We used data from all heterosexual females aged 18–29 years (n=434) excluding sex workers or swingers to obtain point estimates of urogenital, anorectal and concurrent (urogenital and anorectal) infection prevalence and 95% CIs and to obtain the percentage reporting anal sex. All other behavioural parameters are from all STI clinic attendees aged 15–29 years or other relevant sources.
Calibration procedure
The three transmission probabilities (per vaginal and anal sex act transmission probability and autoinoculation probability) were calibrated to the STI clinic data assuming a background female testing uptake of 14% per year,15 a partner notification probability of 0.516 and the Dutch standard of care.17 In this standard of care, all STI clinic attendees receive urogenital chlamydia testing and only women who reported having had anal sex in the six months prior to their clinic visit are also tested anorectally. For chlamydia treatment, a single dose of azithromycin (1 g) is prescribed for urogenital infections, and 7-day (100 mg twice daily) use of doxycycline for anorectal infections when detected by testing.
Details of the calibration procedure can be found in the online supplementary text S2. Only sets of transmission probabilities that resulted in model point prevalences that fell within the 95% CIs of the data are used throughout the paper. For each of these parameter sets, we counted the cumulative number of events that resulted in transmission between individuals and within one individual between anatomical sites. We then calculated the distribution of events per anatomical location by dividing the cumulative number of infections caused by vaginal intercourse or by autoinoculation from the anorectal to the urogenital site by the total cumulative number of urogenital infections. For the anorectal location, we divided the cumulative number of infections caused by anal intercourse or by autoinoculation from the urogenital to the anorectal site by the total cumulative number of anorectal infections (see online supplementary text S1). All results are provided as medians and IQRs.
Intervention scenarios
We tested the impact of three different intervention scenarios (table 2). The impact is defined as the relative difference in chlamydia prevalence of female STI clinic visitors 10 years after introducing the intervention compared with continuation of the standard of care. First, we estimated the impact of universal doxycycline use, meaning that all people testing positive for urogenital chlamydia receive doxycycline. Second, we estimated the impact of universal testing on both anatomic sites where single urogenital infections were treated with azithromycin and anorectal infections were treated with doxycycline. Last, we tested the impact of both interventions combined.
The standard of care that is incorporated in the model and the three studied intervention scenarios
Uncertainty analyses
We performed uncertainty analyses on the impact of the intervention for various parameters including the anorectal infection duration, the anal sex frequency, the percentage of people with recent anal sex to account for possible under-reporting, and the azithromycin and doxycycline effectiveness in treating anorectal and urogenital infections. We also looked at a scenario in which the standard of care for treating anorectal infections was azithromycin (eg, in the USA4) and a scenario with higher testing uptake (increased from 14% to 40% in 10 years as obtained in England). Last, we fitted the model to two other data sources on universal testing (see online supplementary text S3 and figure S2).7 ,8 For every uncertainty analyses, we refitted the model to the data and analysed the impact of interventions using the transmission probabilities that agreed with the data.
The model was able to produce chlamydia prevalence in agreement with the Dutch STI clinic visitor data (figure 1A). The anal infection prevalence in women was slightly higher in the model compared with the data, but still well within the CIs of the data.
(A) Chlamydia urogenital, anorectal and concurrent infection prevalence in females and urogenital prevalence in males and 95% CI among heterosexuals aged 18–29 years (excluding swingers and commercial sex workers) visiting the STI clinic in South Limburg, the Netherlands, between May 2012 and July 2013 (squares) and the calibrated median prevalence from the model (open diamonds) and the 95% percentiles of all runs. (B) The calibrated transmission probabilities for the three different transmission routes. (C) The distribution of female urogenital infections (white) and anorectal infections (grey) that occur through sexual intercourse or through autoinoculation. In (B) and (C), the results are presented as medians (black line), with the boxes representing the IQRs and the bars the minimum and maximum values.
Quantifying transmission
We found a median transmission probability of 2.0% (IQR 1.7–2.2%) per vaginal sex act from men to women and women to men (figure 1B). The anal sex probability was more than twice that of vaginal sex, that is, 5.8% (IQR 3.0–8.3%) from men to women and women to men. The female median daily autoinoculation probability was lower (0.7%; IQR 0.5–1.0%) than the per sex act transmission probabilities.
Using the calibrated transmission probabilities, we calculated the proportion of infections in females that were caused by intercourse or autoinoculation per anatomical location (figure 1C). In the model, more urogenital infections were caused by vaginal sex (57%; IQR 46–64%) than by autoinoculation (43%; IQR 36–54%). The contribution of autoinoculation in anorectal infections was much larger, that is, 87% (IQR 81–93%) compared with 13% (IQR 7–18%) through anal sex.
Impact intervention scenarios
The impact of the interventions is calculated as the relative reduction in female STI clinic visitors prevalence compared with continuation of the standard of care (see online supplementary figure S1). Introducing doxycycline as the universal treatment for all detected chlamydia infections had only a modest relative impact on reducing the total (urogenital and/or anorectal) chlamydia prevalence in the female STI clinic visitors population: the prevalence was reduced by 4.3% (IQR 3.5–5.3%) after 10 years compared with continuation of the standard of care in these 10 years (table 3). In absolute terms, this means that the total chlamydia prevalence in this STI clinic population (15.5%; IQR 16.7–18.2%) was only slightly reduced by 0.7% (IQR 0.6–0.9%). Introducing routine universal testing on both anatomic locations had almost double the impact on reducing chlamydia prevalence (a relative reduction of 8.7% (IQR 7.6–9.7%) after 10 years). In absolute terms, this reduction was small, with an absolute reduction of the prevalence of 1.5% (IQR 1.3–1.6%). Both interventions combined resulted in the largest relative impact (9.3%; IQR 8.2%10.3%) after 10 years, but the additional impact compared with universal testing alone was negligible. For all interventions, the relative reduction was slightly larger in anorectal prevalence compared with urogenital prevalence since the intervention measures were aimed at enhancing anorectal detection and treatment (see online supplementary tables S3 and S4).
Relative reduction of total (urogenital and/or anorectal) chlamydia prevalence of female STI clinic visitors 10 years after introducing universal routine doxycycline treatment or universal routine anorectal testing or both interventions combined compared with continuation of standard of care
The estimated impact of the intervention measures in reducing population prevalence was robust for the tested assumptions (table 3; see online supplementary tables S3 and S4). However, a larger reduction in population prevalence was estimated when assuming a lower azithromycin effectiveness in clearing anorectal infections and when azithromycin was the standard of care for treating anorectal infections. Additionally, for universal testing only, a larger reduction in prevalence was estimated when assuming a longer anorectal infection duration.
Our results suggest that autoinoculation between the female urogenital and anorectal location might play an important role in chlamydia transmission and in sustaining high chlamydia prevalence in women. While chlamydia is about equally prevalent at both the urogenital and the anorectal site, we showed that urogenital infections were much more due to vaginal sex than anorectal infections were to anal sex. This suggests that most infections in women start at the urogenital location through vaginal sex and are then transmitted to the anorectal site through autoinoculation. We also showed that, in a setting where doxycycline is provided for anorectal infections, adding routine universal anorectal testing of women was more effective in reducing STI clinic female prevalence compared with universal doxycycline use for urogenital and anorectal infections.
To our knowledge, we are the first to incorporate anatomic site-specific chlamydia infections in heterosexual population models. A strength of the model is that it incorporates partnership duration explicitly, meaning that reinfection from an infected partner within partnerships can occur. Another strength is that the model was validated using empirical data, enhancing the usefulness for policymaking. The results were robust across data sources from different settings and for most deviations in the assumptions. There are also limitations to the study. First, the model did not incorporate other possibilities than sexual exposure or autoinoculation on how people might become infected at the anorectal site such as via the gastrointestinal tract through oral sex (as suggested in animal models).12 Second, we assumed that all anorectal infections were also infectious. Current diagnostics for chlamydia (NAAT) cannot distinguish between live and dead organisms to indicate possible infectiousness. Bacterial load may provide some clues on this, and a recent study found that anorectal chlamydia load was within a similar range in women and men who have sex with men (MSM).18 Last, since the model is fitted to STI clinic data, it contains one group that is characterised by relatively high-risk sexual behaviour and high chlamydia prevalence compared with the general population. We speculate that adding more heterogeneity in the model (ie, by including low-risk individuals or allowing for dispersion of high-risk behaviour among STI clinic visitors) would estimate a smaller impact of the interventions on reducing prevalence.19
We incorporated site-specific natural clearance of the infections rather than individual-level clearance of infection. This means that when a woman is infected at both anatomical locations, she might clear the infection at one location, but not necessarily at the other. She would then be able to reinfect herself, thereby prolonging her infectious period,20 which might have led to an overestimation of the autoinoculation probability. While the possibility of site-specific clearance for chlamydia is still unknown, our assumption is in line with a previous modelling study looking at the role of site-specific infections in gonorrhoea transmission.21 Furthermore, a study on human papillomavirus acquisition and clearance among MSM estimated different clearance rates between the anorectal and urogenital locations, suggesting that individual-level clearance is not necessary.22
The transmission probability per vaginal sex act found here was lower than that found in previous chlamydia models. Most pair models estimated transmission probabilities between 6% and 17%14 ,23 compared with 2% in our study. This can be explained by the extra force of infection from the autoinoculation process in the current model, where the probability of becoming vaginally infected can be seen as a combination of both probabilities. Furthermore, compared with the other models, we assumed more sex acts per week (since we model STI clinic visitors) and no duration of immunity, which results, with equal duration of infection, automatically in a lower probability of transmission per vaginal sex act. Our weekly probability of becoming infected either by vaginal sex or autoinoculation was 9%.
Our results are suggestive of a chlamydia autoinoculation process between anatomical sites in women. Support for an autoinoculation theory mainly comes from observational studies since hard evidence for this theory is lacking. For example, several studies found high anorectal detection rates in women not reporting anal intercourse.2 It is unknown whether other routes of transmission than autoinoculation could in part explain anorectal chlamydia detection. A recent study found that the anal use of fingers or toys was not associated with anorectal chlamydia detection, making this route of transmission less likely.6 Further observational evidence for autoinoculation processes comes from urinary tract infections, where bacteria that have their origin in the intestines invaded the urinary system.24 Moreover, our results that a large proportion (43%) of chlamydia infections at the urogenital site were caused by autoinoculation are also in line with studies showing high repeated urogenital chlamydia infection rates among women.14 ,25
We estimated the relative impact of routine universal testing on reducing chlamydia prevalence to be almost double that of universal doxycycline treatment. An important factor that influences the impact of universal anorectal testing is the proportion of single anal infections. There is uncertainty around the prevalence of single anal infections in women, resulting in published estimates ranging between 4% and 25%.2 In the model, the anorectal prevalence is slightly higher than the data (but still within the CIs), resulting in a slightly higher percentage of single anorectal infections (22%). However, this is well within the ranges published in the literature.2 Moreover, it is questionable if universal anorectal testing is feasible in practice since it would be costly to test all female STI clinic visitors on both anatomic locations. Future studies should include economic evaluations of the clinical impact of the interventions aimed at anorectal infections, taking into account the possibility that long-term complications such as infertility and ectopic pregnancies are averted by interrupting autoinoculation and thereby preventing repeated urogenital infections.
There is ongoing debate about the type of treatment for urogenital chlamydia infections, but a recent RCT did not find evidence that azithromycin was non-inferior to doxycycline in treating urogenital chlamydia.10 We showed that introducing doxycycline as the standard treatment for urogenital chlamydia only slightly reduced chlamydia prevalence in STI clinic visitors compared with continuation of azithromycin. It should be noted that the limited reduction in chlamydia prevalence was found when anorectal infections were already treated with doxycycline in the standard of care. When azithromycin is the standard of care for treating anorectal infections (as in the USA),4 a larger impact on reducing prevalence by introducing doxycycline treatment is expected. In both cases, introducing doxycycline as the standard treatment for chlamydia infections might still be beneficial on the individual level by preventing complications or the development of antimicrobial resistance against Mycoplasma genitalium.26 The largest impact of universal doxycycline treatment on reducing chlamydia prevalence was found for low values of the azithromycin effectiveness in clearing anorectal infections, highlighting the need for RCTs to determine treatment efficacies for anorectal chlamydia.
In conclusion, autoinoculation between anatomic sites in women seems likely and could be important for continuing chlamydia transmission. Continued doxycycline use for anorectal chlamydia, together with a shift to more anorectal testing of female STI clinic attendees, may be considered for its (albeit modest) impact on reducing the continuously high-population chlamydia prevalence.
Studies on routine universal testing show that anorectal infections in women are common, irrespective of reported anal intercourse.
The mathematical model suggests that urogenital infections are often due to vaginal sex while anorectal infections are infrequently due to anal sex.
Autoinoculation between the female urogenital and anorectal anatomic location might play a role in sustaining high chlamydia prevalence.
A shift to more anorectal testing of female STI clinic attendees might be considered for its (albeit modest) impact on reducing prevalence.
The authors thank Pippa Scott for commenting on the final version.
European Centre for Disease Prevention and Control (ECDC). Annual Epidemiological Report 2013. Reporting on 2011 surveillance data and 2012 epidemic intelligence data. Stockholm: ECDC, 2013.
Dukers-Muijrers NH,
Schachter J,
van Liere GA, et al
. What is needed to guide testing for anorectal and pharyngeal Chlamydia trachomatis and Neisseria gonorrhoeae in women and men? Evidence and opinion. BMC Infect Dis 2015;15:533. doi:10.1186/s12879-015-1280-6
The Dutch College of General Practitioners (NHG). Het SOA-consult [In Dutch]. http://www.nhg.org/standaarden/samenvatting/het-soa-consult#idm8544768 (accessed 2 Nov 2015).
Centers for Disease Control and Prevention (CDC). Sexually transmitted diseases treatment guidelines, 2015. MMWR Recomm Rep 2015;64:1–137. doi:10.15585/mmwr.rr6404a1
Nwokolo NC,
Dragovic B,
Patel S, et al
. 2015 UK national guideline for the management of infection with Chlamydia trachomatis. Int J STD AIDS 2016;27:251–67. doi:10.1177/0956462415615443
van Liere GA,
Hoebe CJ,
Wolffs PF, et al
. High co-occurrence of anorectal chlamydia with urogenital chlamydia in women visiting an STI clinic revealed by routine universal testing in an observational study; a recommendation towards a better anorectal chlamydia control in women. BMC Infect Dis 2014;14:274. doi:10.1186/1471-2334-14-274
Ostergaard L,
Agner T,
Krarup E, et al
. PCR for detection of Chlamydia trachomatis in endocervical, urethral, rectal, and pharyngeal swab samples obtained from patients attending an STD clinic. Genitourin Med 1997;73:493–7.
Peters RP,
Dubbink JH,
van der Eem L, et al
. Cross-sectional study of genital, rectal, and pharyngeal Chlamydia and gonorrhea in women in rural South Africa. Sex Transm Dis 2014;41:564–9. doi:10.1097/OLQ.0000000000000175
Australian Sexual Health Alliance (ASHA). Australian STI management guidelines for use in primary care. http://www.sti.guidelines.org.au/sexually-transmissible-infections/chlamydia (accessed 2 Nov 2015).
Geisler WM,
Uniyal A,
Lee JY, et al
. Azithromycin versus doxycycline for urogenital Chlamydia trachomatis infection. N Engl J Med 2015;373:2512–21. doi:10.1056/NEJMoa1502599
Kong FY,
Tabrizi SN,
Fairley CK, et al
. The efficacy of azithromycin and doxycycline for the treatment of rectal chlamydia infection: a systematic review and meta-analysis. J Antimicrob Chemother 2015;70:1290–7. doi:10.1093/jac/dku574
Rank RG,
Yeruva L
. Hidden in plain sight: chlamydial gastrointestinal infection and its relevance to persistence in human genital infection. Infect Immun 2014;82:1362–71. doi:10.1128/IAI.01244-13
Craig AP,
Yeruva L, et al
. Is it time to switch to doxycycline from azithromycin for treating genital chlamydial infections in women? Modelling the impact of autoinoculation from the gastrointestinal tract to the genital tract. BMC Infect Dis 2015;15:200. doi:10.1186/s12879-015-0939-3
Heijne JC,
Herzog SA,
Althaus CL, et al
. Insights into the timing of repeated testing after treatment for Chlamydia trachomatis: data and modelling study. Sex Transm Infect 2013;89:57–62. doi:10.1136/sextrans-2011-050468
Rutgers. Kerncijfers leefstijlmonitor seksuele gezondheid [In Dutch]. http://www.rutgers.nl/sites/rutgersnl/files/PDF/Kerncijfers%20_leefstijlmonitor_seksuele_gezondheid_2014_0.pdf (accessed 9 Dec 2016).
McClean H,
Carne CA, et al
. Variation in partner notification outcomes for chlamydia in UK genitourinary medicine clinics: multilevel study. Sex Transm Infect 2011;87:420–5. doi:10.1136/sti.2011.049320
Rijksinstituut voor Volksgezondheid en Milieu (RIVM). LCI-richtlijn Chlamydia trachomatis en lymfogranuloma venereum [In Dutch]. http://www.rivm.nl/Documenten_en_publicaties/Professioneel_Praktisch/Richtlijnen/Infectieziekten/LCI_richtlijnen/LCI_richtlijn_Chlamydia_trachomatis_en_lymfogranuloma_venereum (accessed 9 Dec 2016).
Dirks JA,
Hoebe CJ, et al
. Anorectal Chlamydia trachomatis load is similar in men who have sex with men and women reporting anal sex. PLoS ONE 2015;10:e0134991. doi:10.1371/journal.pone.0134991
Bogaards JA,
Kretzschmar M,
Xiridou M, et al
. Sex-specific immunization for sexually transmitted infections such as human papillomavirus: insights from mathematical models. PLoS Med 2011;8:e1001147. doi:10.1371/journal.pmed.1001147
. Case and partnership reproduction numbers for a curable sexually transmitted infection. J Theor Biol 2013;331: 38–47. doi:10.1016/j.jtbi.2013.04.010
Hui B,
Fairley CK,
Chen M, et al
. Oral and anal sex are key to sustaining gonorrhoea at endemic levels in MSM populations: a mathematical model. Sex Transm Infect 2015;91:365–9. doi:10.1136/sextrans-2014-051760
Mooij SH,
van Santen DK,
Geskus RB, et al
. The effect of HIV infection on anal and penile human papillomavirus incidence and clearance: a cohort study among MSM. AIDS 2016;30:121–32. doi:10.1097/QAD.0000000000000909
Althaus CL,
Low N
. Towards more robust estimates of the transmissibility of Chlamydia trachomatis. Sex Transm Dis 2012;39:402–4. doi:10.1097/OLQ.0b013e318248a550
Lapides J
. Mechanisms of urinary tract infection. Urology 1979;14:217–25. doi:10.1016/0090-4295(79)90486-2
Götz HM,
van den Broek IV,
. High yield of reinfections by home-based automatic rescreening of Chlamydia positives in a large-scale register-based screening programme and determinants of repeat infections. Sex Transm Infect 2013;89:63–9. doi:10.1136/sextrans-2011-050455
Lau A,
Bradshaw CS,
Lewis D, et al
. The efficacy of azithromycin for the treatment of genital Mycoplasma genitalium: a systematic review and meta-analysis. Clin Infect Dis 2015;61:1389–99. doi:10.1093/cid/civ644
Heijne JCM,
Roellin A, et al
. Transmission dynamics of Chlamydia trachomatis affect the impact of screening programmes. Epidemics 2010;2: 123–31. doi:10.1016/j.epidem.2010.04.002
Xiridou M,
Vriend HJ,
Lugner AK, et al
. Modelling the impact of chlamydia screening on the transmission of HIV among men who have sex with men. BMC Infect Dis 2013;13:436. doi:10.1186/1471-2334-13-436
de Graaf H,
Kruijer H,
Acker J, et al
. Seks onder je 25e 2: seksuele gezondheid van jongeren in Nederland anno 2012 [In Dutch]. Delft, Eburon Academic Publishers 2012.
Law M, et al
. Azithromycin versus doxycycline for the treatment of genital Chlamydia infection: a meta-analysis of randomized controlled trials. Clin Infect Dis 2014;59:193–205. doi:10.1093/cid/ciu220
Abstract in Dutch
Abstract in Dutch - Online abstract
Handling editor Jackie A Cassell
Contributors JCMH designed the study, developed the mathematical model, performed the model analyses and drafted the manuscript. GAFSvL, NHTMD-M and CJPAH collected and analysed the data. NHTMDM and BHBvB contributed to the design of the study and JAB to the design of the mathematical model. All authors contributed to the interpretation of the results and commented on the manuscript.
Ethics approval The study was approved by the Medical Ethics Committee of Maastricht University (11-4-108).


text:
Q: Store 4 different values in a byte I have an assignment to do, but I have no clue where to start. I am not expecting and definitely do not want answers in code. I would like some guidance as in what to do because I feel a bit lost.
Pack and unpack variables into a byte . You need to store 4 different values in a byte. The values are:

NAME       RANGE  BITS
engine_on  0-1    1

gear_pos   0-4    3

key_pos    0-2    2

brake1     0-1    1

brake2     0-1    1

(LSB, Least significant bit )
Write a program bytess.c that takes 5 arguments (less or more should be treated as an error). The arguments should correspond to the values/variables above.
Example:
bytess 1 2 2 1 1
The above should be treated as:
Name Value
engine_on 1
gear_pos 2
key_pos 2
brake1 1
brake2 1
Pack these values together in a byte (unsigned char) as an integer and print it out to stdout in hexadecimal form , in this example it should be 'AB' corresponding to bits '10101011. After this your program should return 0. If your program finds anything wrong (too many/few arguments, faulty input values.. ) your program should print error and return a not zero value.
I know how to check if those are 5 args, but I do not understand what to do next. Ive already read so much information about shifting but my brain can not handle the whole picture. It feels like this should be a really easy example, but I can not find anything on internet that would be similar.
How does "AB" become 10101011? Ive just checked String to hex -> 4142. hex to bit -> 1000000101110.

A: Have you read about bit field?
struct s {
  unsigned char engine_on : 1;
  unsigned char gear_pos : 3;
  unsigned char key_pos : 2;
  unsigned char brake1 : 1;
  unsigned char brake2 : 1;
};

A: lets call a byte b, if you set b to 0, you end up with (binary) 0000 0000 (space for readability)
Now we want to pack the different parts into this byte
engine_on  0-1    1
gear_pos   0-4    3
key_pos    0-2    2
brake1     0-1    1
brake2     0-1    1

brake2 is simple. We can just set b to the value of brake2 and we will end up with 0000 0000, or 0000 0001 depending on if it is a 0 or a 1.
now we want to set brake 1 to b. We can do this by using a or/equal and the number itself but bitshifted to the right position. We end up with the following:
b |= (brake1 << 1)

lets explain how I came at this:
brake1 = 0000 0001 //lets assume its a 1 not a 0)
(brake1 << 1) = 0000 0010
b = 0000 0001 //lets assume brake 2 was 1.

to 'add' the value from brake1 to b we have to set each bit if either the bit in b is 1 or if the bit in (brake1 << 1) is one. This is done by a 'bitwise-or', so we end up with:
b = b | (brake1 << 1) // which can also be written as:
b |= (brake1 << 1)

now you can also add the other parts, it also works with more bits at the same time. I hope this has been helpful

A: Here is another way of doing it.
    unsigned int i = 0;

    engine_on = 1;
    gear_pos =2;
    key_pos = 2;
    brake1 = 1;
    brake2 = 1;

    i |= s1.brake2;
    i |= (s1.brake1 << 1);
    i |= (s1.key_pos << 2);
    i |= (s1.gear_pos << 4);
    i |= (s1.engine_on << 7);

redpajama_set_name: RedPajamaStackExchange


Super Savings! Up to 32% off on Squeegees at Passion Missions. Top brands include Unger, DCI Marketing, FOSHIO, Carrand, Collections Etc, InterDesign, Karinox, UNG, Magnolia Brush, & Generic. Hurry! Limited time offers. Offers valid only while supplies last.
Unger Professional Dual End Aluminum Pole with Screw-On Handle, 48"


text:
What We Teach?
Our curriculum is based upon British standards accessed through Cambridge qualifications which include both Primary and Secondary Checkpoint and IGCSE. Our subjects taught include Personal, Social, Health Education (PSHE), Art, Information and Communication Technology (ICT), Music, Speech, Drama, History and Geography. Secondary students also study Business, using a programme designed by our specialist staff.
All Malaysian nationals study Bahasa Malaysia, Malaysian History and Moral Studies, while Mandarin is compulsory for all students at the school, whether as a first or second language. Muslim students will receive Islamic Tuition.
Students in Years 10 and 11 are offered an IGCSE options package, also from Cambridge. Our curriculum in many subjects is 'internationalised' to suit an Asian setting, particularly in the Humanities.
Integrated within our curriculum is a focus upon service based learning as well as project work, which develops other skills' such as independent thinking, presentations, group work and research.
Curriculum Breakdown
Cambridge Checkpoint Exams
The school follows Cambridge Primary and Secondary 1 programmes from Year 1 to Year 9, resulting in checkpoint Examinations in Year 6 and Year 9. The following information can be found within the CIE website.
Cambridge Primary English enables learners to communicate confidently and effectively and to develop the critical skills to respond to a range of information, media and texts with understanding and enjoyment. Learners who follow this curriculum framework will develop a first language competency in English based on a curriculum designed to be successful in any culture and to promote cross-cultural understanding.
The mathematics curriculum framework explores five content areas: number, geometry, measure, handling data and problem solving. This curriculum focuses on principles, patterns, systems, functions and relationships so that learners can apply their mathematical knowledge and develop a holistic understanding of the subject.
This curriculum framework covers four content areas: scientific enquiry, biology, chemistry and physics. Scientific enquiry is about considering ideas, evaluating evidence, planning, investigating, recording and analysing data. Environmental awareness and some history of science are also part of the curriculum.
Cambridge Primary Checkpoint in Year 6 is designed to help students learn by providing comprehensive feedback on their strengths and weaknesses in the key curriculum areas – English, mathematics and science. They are marked by Cambridge and provide schools with an international benchmark for learner performance. Each learner receives a statement of achievement and a diagnostic feedback report, giving schools invaluable information and parents extra trust in the feedback they receive.
Cambridge Secondary 1
Cambridge Secondary 1 develops skills and understanding in English, mathematics and science for the first three years of secondary education. It combines a world-class curriculum, high-quality support for teachers and integrated assessment. It also provides excellent preparation for IGCSE. Each curriculum framework is designed to engage learners in an active and creative learning journey.
Cambridge Secondary 1 English enables learners to communicate confidently and effectively and to develop the skills to respond to a range of information, media and texts with understanding and enjoyment. Learners who follow this framework will develop a first language competency in English based on a curriculum designed to be successful in any culture and to promote cross-cultural understanding.
The curriculum framework explores six content areas: number, algebra, geometry, measure, handling data and problem solving. The first five content areas are all underpinned by problem solving, which provides a structure for the application of mathematical skills. Mental strategies are also an important part of the number content. The curriculum focuses on principles, patterns, systems, functions and relationships, so that learners apply their mathematical knowledge and develop a holistic understanding of the subject.
This curriculum framework covers four content areas: scientific enquiry, biology, chemistry and physics. Scientific enquiry is about considering ideas, evaluating evidence, planning investigative work, and recording and analysing data. The scientific enquiry objectives underpin biology, chemistry and physics, which are focused on developing confidence and interest in scientific knowledge. Environmental awareness and some history of science are also part of the curriculum.
Cambridge Secondary 1 Checkpoint tests are held at the end of Year 9. They give valuable feedback on learners' strengths and weaknesses before they progress to the next stage of education. The tests are marked in Cambridge and provide schools with an external international benchmark for learner performance. Each learner receives a statement of achievement and a diagnostic feedback report, giving schools detailed information and parents extra trust in the feedback they receive.

redpajama_set_name: RedPajamaCommonCrawl


Korean musicians from various genres will set the stage alight at this year's South by South West (SXSW) and The Great Escape (TGE) music festivals!
Crush, Lee Hi, KARD, DPR Live, CIFIKA, and Say Sue Me will be participating in the "Korea Spotlight @SXSW" showcase event on March 16 during SWSX, which will be held from March 9 to 18. 3rd Line Butterly, Billy Carter, ADOY, and Say Sue Me will be performing at the "Korea Spotlight @TGE" showcase event at TGE, which will take place between May 17 to 19.
A press conference was held on February 27 with the musicians who will be participating in this year's music festivals, and the event was attended by Crush, KARD, Say Sue Me, DPR Live, 3rd Line Butterly, Billy Carter, and ADOY.
"Korea Spotlight @SXSW" will be held on March 16 at the Belmont Austin in Texas, U.S., while "Korea Spotlight @TGE" will take place on May 19 in Brighton, U.K..


Fifty years ago today Pomeroy was bustling with excitement as the 4th annual Big Bend Regatta kicked off three days of summer fun. Photos and articles from The Daily Sentinel's 1968 Big Bend Regatta preview edition in the days leading up to the Regatta detailed some of the favorite activities, including boat racing, a pie eating contest and of course, frog jumping. Additionally, there was a parade, rock and roll artists performing, tub races, and a home talent show. (Above, Right) The photo caption from the preview edition states "Kay Harrison, one of the racers scheduled to compete again in the Big Bend Regatta racing program at Pomeroy this year, is in a B-Hydro class boat." (Above Left) The photo caption from the preview edition states "Attorney Fred Crow, who can be colorful in the courtroom as well as in his role of chairman of the Big Bend Regatta's Frog Jumping Contest, promises a bigger and better Jump event this year….(pictured) he launches his Senior Division jumping winner of last year." The Frog Jumping Contest took place over two days at the 1968 Regatta.


text:
// Copyright (C) 2004  Davis E. King (davis@dlib.net)
// License: Boost Software License   See LICENSE.txt for the full license.
#ifndef DLIB_ENTROPY_DECODER_MODEL_KERNEl_1_
#define DLIB_ENTROPY_DECODER_MODEL_KERNEl_1_

#include "../algs.h"
#include "entropy_decoder_model_kernel_abstract.h"
#include "../assert.h"

namespace dlib
{

    template <
        unsigned long alphabet_size,
        typename entropy_decoder,
        typename cc
        >
    class entropy_decoder_model_kernel_1
    {
        /*!
            REQUIREMENTS ON cc
                cc is an implementation of conditioning_class/conditioning_class_kernel_abstract.h
                cc::get_alphabet_size() == alphabet_size+1

            INITIAL VALUE
                Initially this object's finite context model is empty

            CONVENTION
                &get_entropy_decoder() == coder
                &order_0.get_global_state() == &gs

                This is an order-0 model. The last symbol in the order-0 context is
                an escape into the order minus 1 context.
        !*/

    public:

        typedef entropy_decoder entropy_decoder_type;

        entropy_decoder_model_kernel_1 (
            entropy_decoder& coder
        );

        virtual ~entropy_decoder_model_kernel_1 (
        );

        inline void clear(
        );

        inline void decode (
            unsigned long& symbol
        );

        entropy_decoder& get_entropy_decoder (
        ) { return coder; }

        static unsigned long get_alphabet_size (
        ) { return alphabet_size; }

    private:

        entropy_decoder& coder;
        typename cc::global_state_type gs;
        cc order_0;

        // restricted functions
        entropy_decoder_model_kernel_1(entropy_decoder_model_kernel_1<alphabet_size,entropy_decoder,cc>&);        // copy constructor
        entropy_decoder_model_kernel_1<alphabet_size,entropy_decoder,cc>& operator=(entropy_decoder_model_kernel_1<alphabet_size,entropy_decoder,cc>&);    // assignment operator

    };

// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
    // member function definitions
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------

    template <
        unsigned long alphabet_size,
        typename entropy_decoder,
        typename cc
        >
    entropy_decoder_model_kernel_1<alphabet_size,entropy_decoder,cc>::
    entropy_decoder_model_kernel_1 (
        entropy_decoder& coder_
    ) :
        coder(coder_),
        order_0(gs)
    {
        COMPILE_TIME_ASSERT( 1 < alphabet_size && alphabet_size < 65535 );
    }

// ----------------------------------------------------------------------------------------

    template <
        unsigned long alphabet_size,
        typename entropy_decoder,
        typename cc
        >
    entropy_decoder_model_kernel_1<alphabet_size,entropy_decoder,cc>::
    ~entropy_decoder_model_kernel_1 (
    )
    {
    }

// ----------------------------------------------------------------------------------------

    template <
        unsigned long alphabet_size,
        typename entropy_decoder,
        typename cc
        >
    void entropy_decoder_model_kernel_1<alphabet_size,entropy_decoder,cc>::
    clear(
    )
    {
        order_0.clear();
    }

// ----------------------------------------------------------------------------------------

    template <
        unsigned long alphabet_size,
        typename entropy_decoder,
        typename cc
        >
    void entropy_decoder_model_kernel_1<alphabet_size,entropy_decoder,cc>::
    decode (
        unsigned long& symbol
    )
    {
        unsigned long current_symbol, low_count, high_count, target;

        // look in the order-0 context
        target = coder.get_target(order_0.get_total());
        order_0.get_symbol(target,current_symbol,low_count,high_count);

        // have coder decode the next symbol
        coder.decode(low_count,high_count);

        // if current_symbol is not an escape from the order-0 context
        if (current_symbol != alphabet_size)
        {
            // update the count for this symbol
            order_0.increment_count(current_symbol,2);

            symbol = current_symbol;
            return;
        }

        // update the count for the escape symbol
        order_0.increment_count(alphabet_size);

        // go into the order minus one context
        target = coder.get_target(alphabet_size);
        coder.decode(target,target+1);

        // update the count for this symbol in the order-0 context
        order_0.increment_count(target,2);

        symbol = target;

    }

// ----------------------------------------------------------------------------------------

}

#endif // DLIB_ENTROPY_DECODER_MODEL_KERNEl_1_

redpajama_set_name: RedPajamaGithub


text:
What Hath God Wrought? 05:28
De Revolutionibus 08:05
Scope 05:40
Battle Cry 07:35
Test Pressing
white label, black vinyl in generic white sleeve. please note: the sound quality may vary from the final release
12" Vinyl
Transition, the collaborative release of Immix Ensemble and Vessel focuses on the theme of technology.
Musical instruments are a somewhat technological anomaly in that they are rarely updated after their conception, often only receiving minor tweaks over the course of hundreds of years. As such, each instrument provides us with a snapshot of the cutting edge technologies of a particular time and place – in this sense, the instrumentation used by Immix provides us with snapshots of technologies that can be traced back as far as 1500BC.
Taking these snapshots as a starting point, each movement in Transition features one or two instruments, and, thematically, explores a significant invention or discovery that took place at around the same time as the invention and development of these instruments. Collaborating with Vessel updates this technological chronology by including the tools of the digital age.
"A remarkable new piece of music" – Mary Anne Hobbs, BBC Radio 6 Music
Immix is lead by Australian-born composer and sax player Daniel Thorne. The now Liverpool-based artist has a genuine passion for exploring and creating music in a diverse range of forms; composed and improvised, acoustic and electronic, and the various shades in-between. Founded in 2014, the idea behind Immix has been to galvanise the innovative musical voices from across the country. With the addition of Vessel, the moniker of Bristolian electronic composer Sebastian Gainsborough, Immix found a valuable first partner in exploring forward-thinking composition that slips between the cracks of traditional and contemporary styles. A stalwart of the UK experimental electronica community, Vessel's solo work has received critical acclaim for it's post-industrial, visceral tone, using a sonic palette derived from the creation of home-made instruments, aiding in the creation of his signature nonreplicable sound.


Published at Wednesday, January 30th, 2019 - 14:01:46 PM. Sofa. By Lyonette Pascaline Duplanty.
Futon couch beds have long been popular among many households given their functionality and versatility. Compared to regular sofa beds they are more stylish and can spice up any living room. It is usually placed in the bedroom but with its style and design it has also been used in other parts of the home. Aside from being more stylish compared to sofa beds they also take less space. There are many advantages of using a futon couch bed. One of them is the convenience of use.


text:
Shania to release 'Come on Over' deluxe version with Sir Elton, Nick Jonas
The new edition will feature two live versions of her No. 1 hit 'You're Still the One' - one with Chris Martin that was recorded in Las Vegas earlier this year, and another with Elton John taped in Miami in 1999. According to People, the album will also feature a duet with Nick Jonas on 'Party for Two', recorded at Stagecoach in 2017.
Los Angeles | Monday, 28 November 2022 | 07:20 PM 07:20 PM
Canadian singer-songwriter Shania Twain has a special gift for her fans this holiday season. The country superstar is releasing a deluxe version of her 1997 classic 'Come on Over', complete with a few star-studded duets, as part of Apple Music's holiday countdown 'From Apple Music With Love', reports People magazine.
The new edition will feature two live versions of her No. 1 hit 'You're Still the One' - one with Chris Martin that was recorded in Las Vegas earlier this year, and another with Elton John taped in Miami in 1999.
According to People, the album will also feature a duet with Nick Jonas on 'Party for Two', recorded at Stagecoach in 2017. Twain previously described John as one of her "big, big, big heroes," and said her surprise performance with Martin was "a life dream realised!"
The 'Man! I Feel Like a Woman!' singer and Jonas, meanwhile, have teamed up in the past, on a holiday song called 'Say All You Want for Christmas'.
Also read | Shania Twain to get music icon award at the 2022 People's Choice Awards
'Come on Over', Twain's third studio album, propelled her to international fame. It remains the best-selling studio album by a female solo artiste.
People adds that the country star thanked fans earlier this month for its success as she marked the album's 25th anniversary.
"Twenty-fife years ago I released Come On Over... and because of your support, that album went on to become the biggest-selling studio album by a female artist of all time: The best-selling country music album ever [and] the biggest-selling album by a Canadian country artist ...Crazy," she wrote.
The anniversary came just days after Twain announced her upcoming sixth studio album 'Queen of Me' will be released on February 3.


text:
using NCubeSolvers.Core;

namespace NCubeSolver.Plugins.Solvers.Size2
{
    internal class FaceColourPair
    {
        public FaceType Face { get; set; }
        public FaceColour Colour { get; set; }
    }
}


Welcome To Maa Sumedha Devi Ji a black magic specialist for serving help seekers with great black magic services.
* Your privacy is our policy.
* Every solution in short time.
* Protection from bad effects.
* Just give birth details.
We are working from Many Years in astrology Field.
She is attached with tens of millions of human beings to serve them through her black magic services. Many human beings are associated with her for her black magic offerings. She gives the answer for family, marriage and love related troubles via black magic. Love brings the real happiness in lifestyles. no person can stay fortuitously with out love. each person needs a person to proportion their emotions, pains and happiness. man and lady are made for each other.
Maa Sumedha Devi Ji is a well-known Black Magic Guru with intense personality across the world for her well-accepted strategies. discover the solution for all problems worth for you as astrology is a strong and effective technological know-how with a connection with past, gift and destiny that explores the complete destiny occasions earlier. to convert your existence from dark to light, first the reason of the trouble is observed which is not an smooth component to do for ordinary human beings. Maa Sumedha Devi Ji recognizes the motive of problem with the aid of the usage of eternal powers. the solution of affection issues with Black Magic professional is pretty desirable as she is an expert vashikaran affording the first-class in bringing the desired effects with harmony and peace for your love or married life.
?How to reach MAA SUMEDHA DEVI JI?
You can reach Maa Sumedha Devi Ji over phone or in person subject to prior appointment. We have fully dedicated phone lines for the domestic as well as the international clients.


text:
De gemeente Dzierzgoń is een stad- en landgemeente in het Poolse woiwodschap Pommeren, in powiat Sztumski.

De gemeente bestaat uit 12 administratieve plaatsen solectwo: Ankamaty, Bągart, Bruk, Budzisz, Jasna, Minięta, Morany, Nowiec, Poliksy, Prakwice, Tywęzy, Żuławka Sztumska.

De zetel van de gemeente is in Dzierzgoń.

Op 30 juni 2004 telde de gemeente 9603 inwoners.

Oppervlakte gegevens
In 2002 bedroeg de totale oppervlakte van gemeente Dzierzgoń 131,4 km², waarvan:

 agrarisch gebied: 86%
 bossen: 2%

De gemeente beslaat 17,98% van de totale oppervlakte van de powiat.

Demografie
Stand op 30 juni 2004:

In 2002 bedroeg het gemiddelde inkomen per inwoner 1573,29 zł.

Aangrenzende gemeenten
Markusy, Mikołajki Pomorskie, Rychliki, Stare Pole, Stary Dzierzgoń, Stary Targ

Gemeente in Pommeren

redpajama_set_name: RedPajamaWikipedia


This morning I started working on an animated visual narrative about the future. It might be in all GIF animations. We will soon be augmenting reality simultaneously as both a creators and as participants. Will you try on a wearable interface? You may begin to personalize everything. Perhaps it starts with your own domain name.


SOAPBOX CREATIONS: Card Hanger Dies Back in Stock!
ALL CARD HANGER DIES ARE BACK IN STOCK!
You can purchase your own by clicking on the Paypal button on the right side bar here on my blog.
I currently have all 4 dies in stock.
Genius idea, Laurie! I love that your card becomes the focal point for the bag...so pretty!


text:
You are here: Home / Crime / Courts / "Flying J" pays fine over environmental violations
"Flying J" pays fine over environmental violations
A Utah company has been ordered to pay over $100,000 for water pollution violations at two of its large truck stops in Iowa . Bob Brammer of the Iowa Attorney General's office says one of the violations happened at the "Flying J" travel plaza in the Des Moines suburb of Clive after diesel fuel got into a local creek in March of 2007.
He says firefighters found an "oily sheen" on the creek and found it ran for several miles. Brammer says they also found the Iowa Department of Natural Resources had for several years been engaged in environmental enforcement actions against the Davenport "Flying J" location. Brammer says the Davenport issues had been ongoing without any resolution.
Brammer says there'd been four to six years of back and forth with alleged violations that the company promised to take care of. He says the company at times promised to do something, but then didn't do it, or paid a fine. Brammer says the issue was then turned over to the Attorney General's office. Brammer says the Attorney General filed a lawsuit, and at the same time filed a proposed resolution for the case, which the company has agreed to.
Brammer says a Polk County judge has approved the resolution which requires the company to pay 140-thousand dollars in a civil penalty, as well as take steps to prevent more environmental problems in the future. He says the company will make some construction changes to meet the environmental concerns. Brammer says the company's travel plaza pose some problems because of their size.
"They are physically gigantic," Brammer says, as the Clive facility has four and half acres of parking. He says with all the trucks and cars parked on the site, there is inevitably runoff that has to be managed to the fuel doesn't get into state waters.
"Flying J" is reported to be the largest retailer of diesel fuel in North America, with approximately 220 locations in the U-S and Canada. The company has two other Iowa locations in Williams and Evansdale.
Filed Under: Crime / Courts, Outdoors Tagged With: Travel


text:
Police Investigate Fatal Collision
Death Investigation, Traffic & Motor vehicle incidentsBy Regina Police July 19, 2010
The Regina Police Service is continuing its investigation into a fatal collision that occurred on Friday, July 16, 2010 in the area of Arthur Street and 7th Avenue. It appears that the incident was initially identified as a possible hit-and-run, but police have identified and located all of the people and vehicles directly involved in…
Police Investigate Sexual Assault
Assault, Sexual CrimesBy Regina Police July 19, 2010
The Regina Police Service is advising the public of a recent sexual assault that occurred on Friday, July 16, 2010 and is asking the public for any information that could assist in this case. On Friday, July 16, at approximately 1:33 p.m., police were dispatched to a residence in the 2800 block of Rae Street…
CCJS Crime Stats Report – Glass Half Full
About PolicingBy Regina Police July 20, 2010
Today, Tuesday July 20th, marks the release of the annual Crime Statistics Report from the Canadian Centre for Justice Statistics (CCJS) and Regina's story is a familiar one. When comparing Regina in 2009 to Regina in 2008, there is an impressive decrease in the overall crime rate. However, as in previous years, Regina still shows…
Regina Male Charged In Sexual Assault
An eighteen year-old Regina male will appear in Provincial Court today, July 23, 2010, charged in connection with a sexual assault that occurred on July 22, 2010 in the area of 6th Avenue and Elphinstone Street. At approximately 5:06 a.m., Thursday, July 23, 2010, police were dispatched to the area of 6th Avenue and Elphinstone…
Request Assistance – Apartment Laundry B&E's
Break & Enter, Request Assistance, Robbery, Theft & PossessionBy Regina Police July 26, 2010
The Regina Police Service is asking for the public's co-operation in preventing Break and Enters to apartment building laundry rooms. Police are also asking for information to assist in recent cases. Since June 17, 2010, the Police Service has received nine reports of Break and Enter committed in apartment buildings. In each case, the unknown…
1011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991,0001,0011,0021,0031,0041,0051,0061,0071,0081,0091,0101,0111,0121,0131,0141,0151,0161,0171,0181,0191,0201,0211,0221,0231,0241,0251,0261,0271,0281,0291,0301,0311,0321,0331,0341,0351,0361,0371,0381,0391,040


This revolutionary Keratin therapy eliminates up to 95% of frizz and curl and instantly adds amazing shine, silkiness, and condition to the hair. Hair is straighter, more manageable, smoother, and easier to style than ever before. BONUS: Free shampoo and conditioner!
Hair Extensions are one of the "hottest" items of today's beauty industry. Create a new look with extensions. No glues, heat, or chemicals. Variety of lengths, textures, and colors. Consultation required.


text:
Q: @org.testng.annotations.Test and @org.junit.Test issues While writing Mock Test cases, I have encounter a scenario. when I am using @org.junit.Test annotation above test method than Maven build is not finding test method to execute and when I am using @org.testng.annotations.Test annotation than I can't run the test case using eclipse Junit run as or using coverage as (EMMA).
I don't want to use both the annotations above a single test method.
My code is as follows,
@RunWith(MockitoJUnitRunner.class)
public class RDMActivateServiceImplTest {

    @InjectMocks
    private RDMActivateServiceImpl rdmActivateServiceImpl;
    @Mock
    private AddCheckInstanceStatus addInstanceStatus;
    @Mock
    private Timer timer;

    @BeforeMethod
    public void initMocks() {
        MockitoAnnotations.initMocks(this);
    }

    @org.testng.annotations.Test
    @org.junit.Test
    public void testAddAliveStatusInDb() {

        int intervalInSec = 0;
        Mockito.doNothing().when(timer).scheduleAtFixedRate(addInstanceStatus, 0, intervalInSec * 1000);
        assertNotNull(rdmActivateServiceImpl.addAliveStatusInDb(true));

    }

while putting @org.junit.Test , build output on maven build

and on eclipse it's running fine.
and When I am using @org.testng.annotations.Test, eclipse output is

but Maven build finding test case perfectly.
I don't want to use both the annotation, I am seeking for the solution where I can run test cases on both places.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.vnfm.vnfrdm</groupId>
  <artifactId>vnfrdm</artifactId>
   <packaging>war</packaging>
  <version>1.0.0</version>
    <properties>
        <java-version>1.8</java-version>
        <org.springframework-version>4.1.6.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <hibernate.version>4.3.10.Final</hibernate.version>
        <org.slf4j-version>1.7.21</org.slf4j-version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <repositories>
        <repository>
            <id>clojars</id>
            <name>Clojars Repository</name>
            <url>http://clojars.org/repo</url>
        </repository>
        <repository>
            <id>project.local</id>
            <name>project</name>
            <url>file:${project.basedir}/../../vnfmDB/vnfmDb_lib/lib</url>
        </repository>
        <repository>
            <id>project.cdpl.tailf</id>
            <name>project</name>
            <url>file:${project.basedir}/cdpl_library</url>
        </repository>
        <repository>
            <id>project.local1</id>
            <name>project</name>
            <url>file:${project.basedir}/../common_library/lib</url>
        </repository>
        <repository>
            <id>project.oauth.common</id>
            <name>project</name>
            <url>file:${project.basedir}/../../oauth/common_library/client</url>
        </repository>
        <repository>
            <id>project.local2</id>
            <name>project</name>
            <url>file:${project.basedir}/../vnfm-common/common_library/lib</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.10.Final</version>
            <exclusions>
                <exclusion>
                    <groupId>org.javassist</groupId>
                    <artifactId>javassist</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.vnfm-common</groupId>
            <artifactId>alarm_handler</artifactId>
            <version>0.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.vnfm-common</groupId>
            <artifactId>audit_trail</artifactId>
            <version>0.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.vnfm-common</groupId>
            <artifactId>counter_statistics</artifactId>
            <version>0.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.vnfm-common</groupId>
            <artifactId>configuration_handler</artifactId>
            <version>0.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.vnfm</groupId>
            <artifactId>vnfmDb</artifactId>
            <version>0.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.swit</groupId>
            <artifactId>common</artifactId>
            <version>0.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.vnfm</groupId>
            <artifactId>predestroy</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.vnfm.oauth.client</groupId>
            <artifactId>oauth-client-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.vnfm</groupId>
            <artifactId>mmcommon</artifactId>
            <version>0.0.1</version>
        </dependency>

        <dependency>
            <groupId>com.vnfm</groupId>
            <artifactId>AlarmClearing</artifactId>
            <version>0.1</version>
        </dependency>

        <!-- Jersey + Spring -->
        <dependency>
            <groupId>com.sun.jersey.contribs</groupId>
            <artifactId>jersey-spring</artifactId>
            <version>1.8</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-aop</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <scope>compile</scope>
            <version>4.3.3</version>
        </dependency>
        <!-- <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId>
            <version>5.1.36</version> </dependency> -->
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>1.4.4</version>
        </dependency>

        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
            <version>1.4.1</version>
        </dependency>

        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.3-1103-jdbc41</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.1-api</artifactId>
            <version>1.0.0.Final</version>

        </dependency>

        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3</version>
        </dependency>

        <dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
            <version>3.5.4</version>
        </dependency>

        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.21</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.15</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
            </exclusions>
            <scope>runtime</scope>
        </dependency>

        <!-- @Inject -->
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>

        <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>

        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId>
            <version>1.1.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId> <version>1.1.2</version> </dependency> -->

        <!-- JSON -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.10</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20090211</version>
        </dependency>

        <!-- JAXB -->
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
            <version>2.11.0</version>
        </dependency>

        <!-- Test -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.7</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.10.Final</version>

            <!-- will come with Hibernate core -->
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

        <dependency>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.12.1.GA</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.2</version>
        </dependency>

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-1.2-api</artifactId>
            <version>2.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-jcl</artifactId>
            <version>2.4.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-web</artifactId>
            <version>2.4.1</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-iostreams</artifactId>
            <version>2.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-jul</artifactId>
            <version>2.4.1</version>
        </dependency>

        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
            <version>3.3.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.8.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-math3</artifactId>
            <version>3.1.1</version>
        </dependency>
       <!--  <dependency>
            <groupId>com.tailf</groupId>
            <artifactId>conf-api-src</artifactId>
            <version>6.2</version>
        </dependency>
        <dependency>
            <groupId>com.tailf</groupId>
            <artifactId>conf-api</artifactId>
            <version>6.2</version>
        </dependency> -->
        <dependency>
            <groupId>org.onosproject</groupId>
            <artifactId>jnc</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>2.0.73-beta</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>vnfrdm</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <additionalProjectnatures>
                        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                    </additionalProjectnatures>
                    <additionalBuildcommands>
                        <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                    </additionalBuildcommands>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <mainClass>org.test.int1.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

A: You really shouldn't use both. Decide on one and stick to it. They're both good and share most of the features.
Once you have chosen one, define it explicitly as a maven test phase goal with the Maven Surefire plugin.
Then get your Eclipse plugins straight. If I remember correctly, Eclipse comes with a JUnit plugin preinstalled, but you need to explicitly download the TestNG plugin through the Eclipse marketplace. They both work very similar.
Spring comes with support for both, but the implementation is slightly different. Look up the docs for examples.


text:
Q: Raspberry Pi not able to find java installation I am trying to install Java 17 on my raspberry pi with SDK man. After the installation succeeds, I am not able to use java -version in the terminal and I get this error:
-bash: /home/pi/.sdkman/candidates/java/current/bin/java: No such file or directory

I have the raspberry pi 4 B with 8 GB ram. It has aarch64 as architecture. This happens with every Java 17 installation.

A: Please install Java using the official website, not some unheard of 3rd party program like SDKMan.
Remember to:
Add to $PATH variable by executing the following command line:
export $PATH=$PATH:"yo/new/path" # note the colon is the delimiter
echo $PATH                       # to check if it worked

This process is called "adding Java to your local enviro vars"
Note: make sure you download Java from the official Java website(Oracle) for less hastle, not through your API or choice of working environment software/program.


text:
package com.badlogic.gdx.backends.android.surfaceview;

import java.io.Writer;

import javax.microedition.khronos.egl.EGL;
import javax.microedition.khronos.opengles.GL;

/** A helper class for debugging OpenGL ES applications.
 *
 * Wraps the supplied GL interface with a new GL interface that adds support for error checking and logging. */
public class GLDebugHelper {

	/** Wrap an existing GL interface in a new GL interface that adds support for error checking and/or logging.
	 *

	 * Wrapping means that the GL instance that is passed in to this method is wrapped inside a new GL instance that optionally
	 * performs additional operations before and after calling the wrapped GL instance.
	 *

	 * Error checking means that the wrapper will automatically call glError after each GL operation, and throw a GLException if an
	 * error occurs. (By design, calling glError itself will not cause an exception to be thrown.) Enabling error checking is an
	 * alternative to manually calling glError after every GL operation.
	 *

	 * Logging means writing a text representation of each GL method call to a log.
	 *

	 * @param gl the existing GL interface. Must implement GL and GL10. May optionally implement GL11 as well.
	 * @param configFlags A bitmask of error checking flags.
	 * @param log - null to disable logging, non-null to enable logging.
	 * @return the wrapped GL instance. */

	/** Check glError() after every call. */
	public static final int CONFIG_CHECK_GL_ERROR = (1 << 0);

	/** Check if all calls are on the same thread. */
	public static final int CONFIG_CHECK_THREAD = (1 << 1);

	/** Print argument names when logging GL Calls. */
	public static final int CONFIG_LOG_ARGUMENT_NAMES = (1 << 2);

	/** The Error number used in the GLException that is thrown if CONFIG_CHECK_THREAD is enabled and you call OpenGL ES on the a
	 * different thread. */
	public static final int ERROR_WRONG_THREAD = 0x7000;

	public static GL wrap (GL gl, int configFlags, Writer log) {
		if (configFlags != 0) {
			gl = new GLErrorWrapper(gl, configFlags);
		}
		if (log != null) {
			boolean logArgumentNames = (CONFIG_LOG_ARGUMENT_NAMES & configFlags) != 0;
			gl = new GLLogWrapper(gl, log, logArgumentNames);
		}
		return gl;
	}

	/** Wrap an existing EGL interface in a new EGL interface that adds support for error checking and/or logging.
	 * @param egl the existing GL interface. Must implement EGL and EGL10. May optionally implement EGL11 as well.
	 * @param configFlags A bitmask of error checking flags.
	 * @param log - null to disable logging, non-null to enable logging.
	 * @return the wrapped EGL interface. */
	public static EGL wrap (EGL egl, int configFlags, Writer log) {
		if (log != null) {
			egl = new EGLLogWrapper(egl, configFlags, log);
		}
		return egl;
	}
}