text:
Anuradhapura (singalsko අනුරාධපුරය; tamilsko அனுராதபுரம்) je pomembno mesto na Šrilanki in njena najstarejša prestolnica. Bila je tudi prestolnica Anuradhapurskega kraljestva (os 377 pr. n. št. do 1017 n. št.). Danes je glavno mesto Severne osrednje pokrajine in glavno mesto okrožja Anuradhapura. Starodavna prestolnica Šrilanke, znana po dobro ohranjenih ruševinah stare civilizacije leži v bližini nove Anuradhapure. Bila je  tretja prestolnica Kraljestva Rajarata, ki je sledilo kraljestvom Tambapanni in  Upatissa Nuwara.

Mesto, ki je na seznamu Unescove svetovne dediščine, je bilo več stoletij središče teravadskega budizma. Leži 205 km severno od gospodarske prestolnice Kolombo, na obrežju zgodovinske reke Malvathu Oya. Je eno najstarejših stalno naseljenih mest na svetu in eno od osmih območij svetovne dediščine na Šrilanki.

Verjamejo, da je bilo od četrtega stoletja pr. n. št. do začetka 11. stoletja n. št. glavno mesto Singalcev. V tem obdobju je bilo eno najstabilnejših in dolgoživih središč politične moči in mestnega življenja v Južni Aziji. Staro mestno jedro, ki velja za svet budistični kraj, danes obdajajo samostani na površini več kot 40 km².

Zgodovina

Protozgodovina
Železna doba
Čeprav je bilo po zgodovinskih zapisih mesto ustanovljeno v 5. stoletju pred našim štetjem, arheološki podatki datirajo tudi v 10. stoletje pred našim štetjem . Zelo malo je dokazov o obdobju pred 5. stoletjem pr. n. št., čeprav so izkopavanja razkrila podatke o zgodnejših prebivalcih mesta.

Nadaljnja izkopavanja v Anuradhapuri so odkrila informacije o obstoju prazgodovinskih prebivališč ljudi v citadeli. Železna doba, ki je trajala od 900 do 600 pr. n. št., je zaznamovala pojav železne tehnologije, keramike, konja, domačega goveda in pridelavo riža. V časovnem obdobju od 700 do 600 pr. n. št. je naselje Anuradhapura zraslo na površini najmanj 50 hektarov. Mesto je bilo strateško nameščeno med glavna pristanišča severozahodno in severovzhodno. Obkroženo je bilo z namakanimi in rodovitnimi zemljišči. Mesto je bilo pokopano globoko v džungli, ki je zagotavljala naravno obrambo pred napadalci.

Latenska doba
Obdobje med 500 in 250 pr. n. št. se proučuje po kronikah. V tem času je kralj Pandukabhaya formalno načrtoval mesto z vhodnimi vrati, četrtmi za trgovce, itd. Mesto je bilo takrat na površini okoli 1 kvadratnega kilometra in je bilo eno od največjih na tem kontinentu v tistem času.

Začetki
Postavitev Anuradhapure, kot je opisano v Mahavamsi:

Postavil je štiri predmestja, kot tudi zbiralnik Abhay, pokopališče, kraj za usmrtitve in kapelo Zahodnih kraljic, Vessavanovo figovo drevo (banjan) in Borassus (Palmira-palma) demona bolezni, tla, določena za Yonasa in hišo Velike žrtve; vse to je postavil blizu zahodnih vrat. Za številne askete je postavil puščavniška bivališča; na vzhodu istega pokopališča je vladar zgradil hišo za Niganta Jotiya. Na drugi strani Jotiieve hiše in na tej strani zbiralnika Gamani je prav tako zgradil samostan za potujoče uboge menihe in bivališče za Adživike in rezidenco za Bramane in na tem mestu zgradil zatočišče in dvorano za tiste, da si opomorejo zaradi bolezni.

Verjamejo, da je kralj Pandukabhaya v 4. stoletju pred našim štetjem mesto določil za prestolnico in da je mesto in predmestje postavil po dobro organiziranem načrtu. Zgradil je zbiralnik po imenu Abhayavapi. Ustanovil je svetišča za Yakše, kot sta Kalawela in Cittaraja. v V kraljevskih predelih je gostil Yaksini-Cetiya v obliki kobile, vsako leto pa je daroval vsem tem pol bogovom. Sužnjem ali Candalom so bile dodeljene naloge, določena pa je bila tudi vas. Gradili so bivališča za Nigante, potujoče askete in za Adživike in Bramane. Ustanivl je meje vasi. Tradicija, da je kralj Pandukabhaya postavil Anuradhapuro za glavno mesto Šrilanke že v 4. stoletju pred našim štetjem, je bil zelo pomembna.

Upravni in sanitarni ukrepi za mesto in svetišča, ki jih je predvidel kažejo, da se je mesto v preteklih letih razvilo v skladu z originalnim celovitim načrtom. Njegov sin Mutasiva ga je nasledil na prestolu. V času šestdesetletne vladavine je ohranil Anuradhapuro kot svojo prestolnico in postavil Mahameghavahana vrt, ki je igral pomembno vlogo v zgodnji zgodovini budizma na Šrilanki. Bilo je v času njegovega naslednika, sina Devanampiya Tissa, ko je bil budizem prvič uveden na ta otok 236 let po odhodu Bude. Cesar Ašoka iz Indije je bil sodobnik Devanampiya Tisse.

Mahinda je bil sin cesarja Ašoka iz Indije. Ašoka je prevzel budizem, potem ko ga je navdihnil zelo majhen menih po imenu Nigroda. Kralja, ki je bil zelo žalosten po tem, ko je videl izgubo življenj, ki so jih povzročile njegove vojne, da bi razširili svoj imperij, je navdal z grozo miren pogled na tako mladega meniha. Srečanje tega mladega meniha je postala prelomnica v njegovem življenju, nato pa se je odrekel vojnam. Odločen je bil razširiti sporočilo miru, da nevtralizira učinke škode, ki jo je povzročil s svojo vojsko. Kot posledica sta bila njegov sin in hči posvečena kot Budova učenca in postala prosvetljena kot Arahata ("tisti, ki je vreden" ali kot "dovršena oseba", ko je dosegla nirvano). V svojem prizadevanju za širjenje sporočila o miru namesto vojne je poslal svojega sina Mahinda na otok Lanka, ki je bil znan tudi kot »Sinhalé«. Po mnenju Dipavamse in Mahavamse je Thera Mahinda prišel na Šrilanko iz Indije ob polni luni v mesecu posonpp (junij) in se srečal s kraljem Devanampiyatisom in ljudmi ter pridigal doktrino.

V preteklosti se zdi, da se to obdobje trajalo od 250 do 210 pr. n. šz. To je točka, na kateri se je začelo kraljestvo in se je razvila civilizacija, ki temelji na eni od najpomembnejših religij južne Azije, budizmu.

 Budizem in Anuradhapura
Z uvajanjem budizma je mesto pridobilo večjo pomembnost in začela se je velika doba gradenj. Mahavamsa navaja, da je kralj Kutakannatissa zgradil prvo mestno obzidje visoko sedem kubitov z jarkom pred njim. Ta utrdba je bila nadalje razširjena tako, da je kralj Vasabha dvignil zid nadaljnjih 11 kubitov. Kralj je dodal tudi utrjena vhodna poslopja na vhodih, katerih ruševine je mogoče videti. Mahavamsa prav tako navaja, da so se pri gradnji posvetovali z inženirji in arhitekti.

V poznem obdobju Anuradhapure, so kraljeva družina in plemstvo Šrilanke močno podpirali budizem. Kot taki so pogosto naročali umetniška dela in podarili te predmete budističnim templjem. V zameno so tempelj in lokalna budistična skupnost podprli kraljevo oblast. Umetniška dela z upodobitvami Avalokitesvare, Bodhisatve milosti in sočutja so postala vse bolj priljubljena.

 Velika doba gradenj
Arhitekturne ostanke je še vedno mogoče videti in dajejo vpogled v to, kakšna je bila država v tistem času. Dagoba (stupa) Abayagiri ali Abayagiri Dageba je bila zgrajena v 1. stoletju pred našim štetjem po naročilu kralja Vattagamini Abaya. Kompleks Abayagiri pokriva površino 200 hektarjev. Višina stuoe je 71,6 m in ima premer 94,5 metra na dnu kupole. Zgrajena je na kamniti tlakovani ploščadi. Tehnike, ki so se uporabljale v dobi Anuradhapure, so izjemne.

 Rast mesta
Priljubljenost mesta je rasla tako kot ritualno središče kot upravno središče. Za veliko ljudi je bilo mesto privlačno za trajno naselitev. Tako so se življenjski prostori izboljšali, da bi omogočili širitev prebivalstva. Kralj Vasabha je zgradil veliko ribnikov, ki so jih napajali mrežo podzemnih kanalov, ki so bili zgrajeni za dobavo vode v mesto. Zgradili so zbiralnik (wewa – umetno jezero) Tissa in Abhayavapi, zgradili so Nuwaraweva, reko Malwatu Oya pa zajezili za gradnjo Nachchaduwawewa, ki je bil velik 17,84 km² in je dolg 87 km.

V mestu so bili na voljo parki. Ranmasu Uyana pod obrežjem Tissavapi ali Tissa weva je bil en tak, vendar je bila strogo rezerviran za člane kraljeve družine. Zdravstvo in izobraževanje sta bila še druga vidika, katerim so oblasti namenile pozornost. V mestu je bilo več bolnišnic. V 4. stoletju je kralj Upatissa II. dal zgraditi četrti in domove za pohabljene in slepe. Kralj Buddhadasa (337-365 n. št.), sam zdravnik z velikim ugledom, je imenoval zdravnike, ki so bili odgovorni vsak za deset vasi. Za vzdrževanje teh zdravnikov je bila določena desetina prihodkov s polj. V vsaki vasi je postavil tudi bivališče za bolne. Imenovani so bili tudi zdravniki, ki so skrbeli za živali. Kassapa V. (914-923 n. št.) je ustanovil bolnišnico blizu južnih vrat v Anuradhapuro. Verjamejo, da je general Sena v 10. stoletju zgradil bolnišnico blizu ceremonialne ulice (Managala Veediya). Zgodovina zdravstvene oskrbe se je začela zgodaj, saj je v 4. stoletju pr. n. št. Pandukhabaya v času komunalnega urejanja mesta zgradil bolnišnico. Veliko delovne sile je bilo zadolžene za ohranjanje čistega mesta.

Mestni vladarji so zgradili tudi velika jezera za namakanje riževih polj in za oskrbo z vodo v mestu. Nuwara wewa in Tissa wewa sta med najbolj znanimi jezeri v mestu.
Anuradhapura je dosegla svoj največji razcvet v začetku našega štetja. Mesto je imelo nekaj najzahtevnejših namakalnih sistemov v starodavnem svetu, ki se nahajajo na suhem območju države. V upravi so zgradili veliko zbiralnikov za namakanje zemlje. Večina teh je še vedno ohranjenih.

 Sodobnost
 Evropska odkritja
Območje je bilo več stoletij nenaseljeno, lokalno prebivalstvo pa se je še naprej zavedalo ruševin. Robert Knox je v  An Historical Relation of the Island Ceylon (Zgodovinska razmerja otoka Ceylon), 1681, zapisal: »Na tem mestu Anurodgburra je zastal čas, ko ni več ljudi, ki bi poslušali Kandijskega kralja«.  Leta 1821 je John Davy zapisal: »Anooradapoora, tako dolgo prestolnica Cejlona, je zdaj sredi puščave majhna vasica. Velik zbiralnik, številni kamniti stebri, dva ali trije ogromni tumulusi (verjetno stare dagobe) so njeni glavni ostanki. Še vedno velja za sveto mesto in je romarski kraj«.

 Izkopavanja
Različne izkopavanja so potekala na mestu, ki jih je začel leta 1884-86i Stephen Montagu Burrows.

Na osnovi radiokarbonske datacije so izkopane ruševine iz 10. stoletja pred našim štetjem.

 Razvaline

Ostanki arheološkega kompleksa se razprostirajo med tremi umetnimi jezeri, Nuwarawewo iz 1. st. pr. n. št., ki je največje, Tissawewo in najstarejšim Bassawakulamon iz 4. st. pr. n. št. Razvaline sestavljajo tri skupine zgradb: dagobe ali vatadaže, samostanske zgradbe (pirivena) in kopališča (pokuni) ter palače (maha vihara).

Dagobe so zvonasto oblikovan masiven zidan objekt, različnih velikosti od nekaj metrov do več kot 340 m v obsegu. Nekatere od njih vsebujejo dovolj materiala za gradnjo mesta za petindvajset tisoč prebivalcev. Najstarejša je Tuparamaya, v njej je bila shranjena ključnica Bude. Prvotna dagoba v obliki riževe kopice je bila večkrat poškodovana, današnja podoba je iz leta 1862.

Ostanke samostanskih stavb najdemo povsod v obliki dvignjenih kamnitih ploščadi, temeljev in kamnitih stebrov. Najbolj znan samostan je Bronasta palača, ki ga je postavil kralj Dutugamunu okoli leta 164 pr. n. št. in ga sestavlja 1600 stebrov, ki so bili nekoč opora devetnadstropni stavbi. V priveni so bile obredna dvorana, prostor za meditacije in bivališča za menihe. Prekrit je bil z bronasto streho, po kateri je palača dobila ime. Samostan je bil v spopadih večkrat uničen in obnovljen, zadnjič v 12. stoletju.Pokuni so kopalni bazeni ali zbiralniki za oskrbo s pitno vodo, ki so razpršeni povsod po džungli.

Najpomembnejše med svetišči je Jaya Sri Maha Bodi - Svetišče svetega drevesa razsvetljenja. vsebuje tudi sveto drevo Bodi, za katerega pravijo, da datira v leta 245 pr. n. št.

 Osem velikih svetih objektov v Anuradhapuri – Atamasthana

 Jaya Sri Maha Bodi - svetišče svetega drevesa razvetljenja
 Ruwanwelisaya - visoka 92 m, obseg 292 m, zgrajena v 2. st. pr. n. št.
 Tuparamaya - najstarejša vidna dagoba na svetu, 3. st. pr. n. št., vsebuje desno Budovo ključnico
 Lovamahapaya - znana kot Bronasta palača ali Lohaprasadaya, ker je bila streha prekrita z bronastimi ploščicami
 Abhayagiri vihāra (Neustrašni Giri po puščavniku, ki je tu bival) - 1. st. pr. n. št.
 Jetavanaramaya - je najvišja dagoba visoka 120 m in velja za najvišjo opečno zgradbo antičnega sveta. Ima premer 111 m, stoji pa na 8 m globokih temeljih. V njej so hranili prepasnico, ki jo je uporabljal Gautama Buda. Obnovili so jo leta 2009.
 Stupa Mirisaveti je skalnato svetišče Isurumuniya Vihara z vklesanimi sloni, zaljubljenci in vladarjem Dutugemunom.
 Lankarama - razvaline stupe

 Drugi objekti

Isurumuniya – budistični tempelj blizu zbiralnika Tissawewa
Magul Uyana – kraljevi vrtovi se nahajajo v bližini templja Isurumuniya in Tissa wewa v starodavnem svetišču
Vessagiri - je starodavni budistični gozdni samostan
Rathna Prasadaya - je bil nebotičnik, ki ga je zgradil kralj Kanittha Tissa, ki je vladal Cejlonu od 167 do 186 n. št.
Kraljičina palača
Dakkhina Stupa – velika opečna stupa iz 2. st. pr. n. št.
Sela Cetiya - eden od 16 glavnih krajev čaščenja ali Solosmasthana in se nahaja zahodno od Jetavanaramaya
Naka Vihara - je dagoba, ki pripada obdobju med 7. in 10. stoletjem
Kiribath Vehera - Ostanki tega samostana kažejo, da je bil visok 9 metrov in imel obseg 132,5 metrov
Kuttam Pokuna - Eden najboljših primerov kopalnih bazenov je bil namenjen obrednemu očiščevalnemu kopanju vladarja in menihov. Večji je dolg 40 m, manjši pa 28 m.
Kip samadija - Kip samadija, ki se nahaja v parku Mahamevnāwa. Buda je upodobljen v položaju Dhyana mudra, drža meditacije, povezane z njegovim prvim razsvetljenjem
Kip Toluwila - je sedeča podoba Bude, odkrita leta 1900 v Anuradhapuri in sega v 4. ali 5. stoletje. Izklesan iz granita je eden najbolje ohranjenih kipov na Šrilanki
Ranmasu Uyana - je park, velik približno 16 hektarov in je primer šrilanške vrtne arhitekture predkrščanskega obdobja.

 Demografija Vir:'' www.statistics.gov.lk - Census 2001

Sklici

Zunanje povezave

Enciklopedija Britanica
UNESCO World Heritage List -  Sacred City of Anuradhapura
Anuradhapura Case-Study by students of School of Planning & Architecture
Sacred City of Anuradhapura

Zgodovina Šrilanke
Kraji svetovne dediščine v Šrilanki
Arheološka najdišča na Šrilanki
Budizem


text:
Audiobooks > Andy Cohen >
Andy Cohen Audio Books
Andy Cohen is Bravo's executive vice president of development and talent, responsible for overseeing the production of such hits as Top Chef and The Real Housewives franchises. In addition, Cohen is the host and executive producer of Watch What Happens Live, Bravo's late night, interactive talk show. He also hosts the network's reunion specials. He's won an Emmy and two Peabody Awards for his work, and he lives in New York City.
Andy Cohen Listeners Also Like These Authors
> show all...
Annette Dashofy
Jan Karon
S. C. Gwynne
Sarah Knight
Dale Carnegie and Associates, Inc.
Extended Sample Sample Unavailable Superficial by Andy Cohen Superficial
Extended Sample Sample Unavailable The Andy Cohen Diaries by Andy Cohen The Andy Cohen Diaries
Extended Sample Sample Unavailable Most Talkative by Andy Cohen Most Talkative

redpajama_set_name: RedPajamaCommonCrawl


Back to back divided by Central Screen.
Available in 2, 4 and 6 Person Systems all Back to Back with Central Screens and Included features.
Power and Data: Segregated cable management, desktop level power and service mounting plates.
E-panel screen available in Red or Charcoal only.
Available in Matte Black powdercoat and Arctic White Gloss powdercoat finish.


text:
Q: How to write recursion without using class field in Java I have the following correct Java code to find the in-order kth element in a binary tree.
private static int count = 0;
public static <T> T findkthInOrder(Node<T> root, int k) {
    count=0;
    return findkthInOrder(root, k, 0);
}
public static <T> T findkthInOrder(Node<T> root, int k,int a) {
    if (root == null)
        return null;
    T rt = findkthInOrder(root.left, k, 0);
    if (rt != null)
        return rt;
    count++;
    if (count == k) {
        return root.data;
    }
    return findkthInOrder(root.right, k, 0);
}

But I really want to remove the use of count, possibly by making use of an additional method argument. I also want to keep it as recursion, and require the method findkthInOrder to return T type value.
Can anyone please help me with this? Thank you.

A: Encapsulate the count value in an object (Integer is not useful as it is inmutable).
Add a method add(int) to increase the count; another one to get current value.
Pass the object recursively.

A: This is overkill but here goes...The only mutable number class I could find in Java was java.util.concurrent.atomic.AtomicInteger
public static <T> T findkthInOrder(Node<T> root, int k) {
    return findkthInOrder(root, k, new AtomicInteger(0));
}
public static <T> T findkthInOrder(Node<T> root, int k, AtomicInteger count) {
    if (root == null)
        return null;
    T rt = findkthInOrder(root.left, k, count);
    if (rt != null)
        return rt;
    if (count.incrementAndGet() == k) {
        return root.data;
    }
    return findkthInOrder(root.right, k, count);
}

I had made premature optimization, fixed now.
Here is alternate solution:
public static <T> T findkthInOrder(Node<T> root, int k) {
    return findkthInOrder(root, k, new int[]{0});
}
public static <T> T findkthInOrder(Node<T> root, int k, int[] count) {
    if (root == null)
        return null;
    T rt = findkthInOrder(root.left, k, count);
    if (rt != null)
        return rt;
    count[0]++;
    if (count[0] == k) {
        return root.data;
    }
    return findkthInOrder(root.right, k, count);
}

A: public class Node< T > {
    T tData;
    Node< T > ntLeft, ntRight;
    int iSubtreeCount;
    public Node( T tData, Node< T > ntLeft, Node< T > ntRight ) {
        this.tData = tData;
        this.ntLeft = ntLeft;
        this.ntRight = ntRight;
        this.iSubtreeCount = subCount( ntLeft ) + subCount( ntRight ) + 1;
    }
    public static int subCount( Node< T > nt ) {
        return null == nt ? 0 : nt.getSubtreeCount();
    }
    public int getSubtreeCount() { return iSubtreeCount; }
    public Node< T > getLeft() { return ntLeft; }
    public Node< T > getRight() { return ntRight; }
    public T getData() { return tData; }
}

And your routine:
public static < T > T findKth( Node< T > ntInput, int k ) {
    if ( 0 == k || null == ntInput )
        return null;
    else if ( Node.subCount( ntInput.getLeft() ) > k - 1 )
        return findKth( ntInput.getLeft(), k );
    else if ( Node.subCount( ntInput.getLeft() ) == k - 1 )
        return ntInput.getData();
    else
        return findKth( ntInput.getRight(), k - 1 - Node.subCount( ntInput.getLeft() ) );
}

redpajama_set_name: RedPajamaStackExchange


It is your responsibility to supervise and coordinate tradesmen working on site, and this includes any defects in subcontractors' work.
If you are a nominee or site supervisor, you must ensure the work done is supervised by an appropriately licensed person.
As a construction manager, your obligations are the same as for a licensed contractor. You must make sure that any work carried out by licensed contractors for a principal (under construction management trade contracts) is supervised by an appropriately licensed person.
Costs to fix defective or substandard work can be high. In extreme cases, fixing poor quality work has forced licensed contractors to close their business and/or declare bankruptcy. It is in a contractor's best interest to be diligent in supervision and quality control.
See the Supervision of Building Work fact sheet (PDF) for the Supervisor's Checklist for Domestic Building Work.
You should carry out regular on-site inspections with your client to ensure work meets acceptable standards. If the homeowner would like a more technical person to inspect the work, it may be worthwhile for them to use a private Building Consultant to monitor the job on their behalf and to raise any issues. Any particular requirements for quality and finish (e.g. type and number of coats of paints) should be included in the contract.
No. You and the owner are responsible for ensuring the building work meets acceptable standards. A certifier must act in the public interest in regard to health and safety but can't supervise or report on the quality of work on an owner's behalf. For more information, see Roles and responsibilities of a certifier.


Converts the path to a different path format.
A PathValidationException will be thrown if the path is not representable in the requested path format. This can happen especially when converting Posix or Internet paths to windows paths, since Windows paths cannot contain a number of characters that the other representations can, in theory.


Added 20 days ago by Carabo. Last updated 5 days ago.
that looks not too bad. how do you like the frameset so far?
Thanks. It's been excellent so far. Solid handling and the frame is pretty stiff. It doesn't feel uncomfortable in the saddle, with the 27.2 seatpost doing it's work.


text:
Call For Entries – Rome Film Festival
Posted: July 9, 2014 by moifightclub in Call For Entries, cinema, Film Festival, News
Tags: Call For Entries, Rome Film festival
(FESTIVAL INTERNAZIONALE DEL FILM DI ROMA)
Calls for Entries in all categories for 2014.
DATE : The 9th Rome Film Festival will be held from October 16-25, 2014.
SECTIONS :
Artistic Director, Marco Müller has announced the following sections for the 9th edition of the festival:
1) New International Cinema | Cinema for Today
A selection of a maximum of 14 feature films of young or already successful directors. The Festival will give priority to feature films that are world premieres.
2) Gala
A selection of some of the year's most important films, for a maximum of 11 titles. Only feature films that are world premieres, international or European premieres will be considered for selection.
3) Mondo Genere
A selection of 7 films belonging to different film genres. Only feature films that are world, international or European premieres will be considered for selection. The Festival will give priority to feature films that are world premieres.
4) Prospettive Italia
This section aims to highlight the new trends in the Italian cinema. It will present a selection of maximum 8 feature films. Only films presented as world premieres will be considered for selection.
– Each of the sections carries a People's Choice Award based on the majority of the audience's preferences, along with 4 Lifetime Achievement Awards assigned by the President and the Board of Directors.
– In addition to this, TAODUE International Jury will assign the TAODUE Award for first or second film, whereas DOC.IT Association will give out the Prospettive Italia Award for the Best Italian Documentary.
– Films will also be offered the possibility to participate in The Business Street (October, 17-21), Rome Film Festival program dedicated to the circulation, acquisition and sale of audiovisual products
ELIGIBILITY CRITERIA :
– Rome Film Festival will only consider feature length films as submissions.
– All submitted films must be recent productions completed not prior to Monday 1st December 2013.
– They must not have been presented in any other format or length, not even as works-in-progress, for submission to previous editions of the Festival.
– With the exception of Out of Competition films, under no circumstances may films that have had prior public screenings, have participated in other international festivals or are available on the Internet, be presented at Rome Film Festival
To submit a film to the selection, one has to fill out a pre-selection entry form on the official festival website after which the preview DVDs should be sent to Deepti DCunha, the India Consultant to Artistic Director, Marco Müller.
– The DVDs should reach her before 10th August 2014 as the Artistic Director will be visiting India for selections.
– Filmmakers with films in post-production are requested to contact Deepti.
All submissions (duly subtitled in English) should be sent to the contact details given below.
Deepti DCunha, 23 – Gautam Niwas, 7-Bungalows, Andheri West, Mumbai 400 053, India
Contact Number: (+91)9820522468 (SMS only), Email: deepti.dcunha@gmail.com
– For complete rules and regulations please visit the Festival website at www.romacinemafest.org
– In 2013, 'Rangabhoomi' by Kamal Swaroop had its World Premiere at the 8th Rome Film Festival and Amit Dutta's 'The Seventh Walk' was the closing film of the CinemaXXI Section. There was a Special screening of 'Om Dar B Dar' by Kamal Swaroop on the occasion of 100 years of Indian Cinema. Prantik Basu's 'Makara' was in CinemaXXI competition.
First Look: Vishal Bhardwaj's HAIDER (Trailer and Posters)
Mumbai Mantra Launches Cinerise – Mentorship Programme For Screenwriters


text:
Als Opération Sardine bezeichnete die französische Staatsbahn SNCF die Rekordfahrt eines TGV am 26. Mai 2001. Die TGV-Réseau-Einheit Nr. 531 absolvierte an diesem Tag die 1067,2 Kilometer lange Distanz zwischen den Bahnhöfen Calais und Marseille in 3 Stunden, 29 Minuten und 36 Sekunden mit einer Durchschnittsgeschwindigkeit von 305,50 km/h. Die Fahrt begann um 16:30 Uhr im Bahnhof Calais-Fréthun und endete um 19:59:36 Uhr im Bahnhof Marseille-Saint-Charles. Die 1000 Kilometer zwischen dem Viadukt über den Fluss Aa in Nordfrankreich und der Ortschaft Cheval-Blanc in Südfrankreich legte der Zug in drei Stunden und neun Minuten zurück, was einem Schnitt von 317,46 km/h entspricht. Um 19:23 Uhr wurde südlich von Valence die Höchstgeschwindigkeit von 366,6 km/h erreicht.

Bedeutung der Rekordfahrt
Kurz vor der Inbetriebnahme der LGV Méditerranée, zum 10. Juni 2001, sollte dabei sowohl ein Fahrzeitrekord zwischen Calais und Marseille als auch für eine Distanz von 1000 km (zwischen dem Tal der Aa und dem Viadukt von Ventabren) aufgestellt werden. Anders als vor den Eröffnungen der LGV Atlantique und der LGV Est européenne wollte die SNCF keinen Geschwindigkeitsrekord aufstellen, sondern eine lange Distanz mit möglichst hoher Geschwindigkeit fahren.

Route
Die Rekordfahrt führte über folgende Strecken:
 LGV Nord von Calais-Fréthun nach Abzweig Moussy-Nord (296,7 km)
 LGV Interconnexion Est zwischen Abzweig Moussy-Nord und Abzweig Moisenay (55,9 km)
 LGV Sud-Est vom Abzweig Moisenay nach Montanay (377,4 km)
 LGV Rhône-Alpes, zwischen Montanay und Saint-Marcel-lès-Valence (113,8 km)
 LGV Méditerranée, zwischen Saint-Marcel-lès-Valence und dem Nordrand von Marseille Abzweig Tuileries (215,7 km)
 PLM-Strecke von Marseille nach Marseille Saint-Charles (7,7 km)
Die vier erstgenannten Schnellfahrstrecken teilte sich der Rekordzug mit an diesem Tag regulär verkehrenden Hochgeschwindigkeitszügen. Auf diesen erreichte der Zug abschnittsweise bis zu 335 km/h. Die niedrigste Geschwindigkeit im Schnellfahrbereich war die Durchfahrt durch den Bahnhof Lille-Europe mit 200 km/h.

Rollmaterial
Zum Einsatz kam die TGV-Réseau-Einheit Nr. 531. Der Mitte 1993 in Dienst gestellte Triebzug hatte bislang mehr als 2,5 Millionen Kilometer zurückgelegt. Der Zug war bereits für die vorangegangenen Test- und Abnahmefahrten auf der LGV Méditerranée modifiziert worden. Unter anderem wurde die Antriebsleistung von 8,8 MW auf 11,2 MW erhöht, um längere Abschnitte mit Geschwindigkeiten von 350 km/h und mehr befahren zu können.

An Bord des Zuges waren unter anderem SNCF-Chef Louis Gallois und zahlreiche Medienvertreter. Die Bilder von elf Außenkameras wurden auf 25 LCD-Bildschirme im Innenraum übertragen. Das Zugsicherungssystem TVM 430 wurde für die Fahrt abgeschaltet. Die drei abwechselnd eingesetzten Triebfahrzeugführer wurden stattdessen von einem Chef de Traction überwacht.

Die TGV-Einheit 531 wurde ab 8. Juni 2001 wieder zu einem regulären TGV umgebaut.

Vorbereitungen
Die SNCF hatten die Rekordfahrt einige Wochen zuvor angekündigt. Dabei sollte die Strecke zwischen Marseille und Calais in weniger als vier Stunden zurückgelegt werden.

Der Rekordfahrt waren drei Probefahrten zwischen dem 13. April und 19. Mai 2001 vorausgegangen. Am 19. Mai waren dabei 367 km/h erreicht worden.

Hintergrund
Die damals schnellsten fahrplanmäßigen Hochgeschwindigkeitszüge (Nozomi-Shinkansen) verkehrten zwischen Tokio und Hakata (1069,1 km) in 4 Stunden 55 Minuten, entsprechend einer Reisegeschwindigkeit von 217,4 km/h.

Trivia
Der Name der Aktion bezieht sich auf den gleichnamigen Fisch. Dieser sollte, nachdem er vor der nordfranzösischen Küste im Ärmelkanal gefangen worden ist, gute dreieinhalb Stunden später im Mittelmeer wieder ausgesetzt werden.

Weblinks
 Grafik des Geschwindigkeitsverlaufs

Einzelnachweise

Schienenverkehr (Frankreich)
Technischer Rekord

redpajama_set_name: RedPajamaWikipedia


One funnel and two masts and had accommodation for 1,234 passengers, she commenced her maiden voyage on 22nd September 1921 when she left London for Capetown, Melbourne and Sydney. She remained on this service until 1929 when she was converted to fuel oil which gave a service speed of 15 knots. From 12 April 1929 she sailed from either London or Liverpool to Malta, Columbo, Melbourne and Sydney.
She commenced her last voyage to Sydney on 13 March 1936 and was then sold to the British government, but resold for breaking up at Dalmuir the same year.


text:
The Honey Pies - Triple J 2012 Big Day Out winners - Adelaide
Having been around for just four years now, Adelaide band The Honey Pies are making the most of their various successes. With two albums under their belt and a Unearthed Winning slot on the Adelaide Big Day Out 2012, The Honey Pies, who describe themselves as the "The Shitty Beatles" – a fictitious band made famous from the Wayne's World movies - are looking to the year ahead, taking one day at a time, trying to not make themselves crazy by attempting to "predict the future".
Caught in the Mosh spoke with The Honey Pies in the lead up to their slot on the 2012 Adelaide leg of the Big Day Out, here's what they had to say;
How do you see winning the opportunity to play at the BDO through the Triple J Unearthed Competition affecting your band in the future?
You can make yourself crazy trying to predict the future so I try not to. I've opened for the Presets and five people came out to watch them. 6 months later they sold out one of Adelaide's biggest venues. Who knows what's going to happen. I think we're all really just concentrating on the Big Day itself and we're just happy as pigs in shit that we've been included. The only long term prediction I'd want to make about it is that it's going to probably be something we will remember for a long time.
Who are you most looking forward to seeing at the Big Day Out 2012?
Best Coast for me. I read that Jon Brion produced her upcoming record and I'm really curious to hear some of the new material. I think Tom from the band would say Battles. The other two boys I'm not sure. If the wind changed and Kanye West was coming down Adelaide-way, I'd be there front-centre. I think he's going to put on a great show.
What can punters expect from your show at the Big Day Out?
To anyone uninitiated with our band, but familiar with Wayne's World- there's a band in that movie called The Shitty Beatles. You never get to hear any of their music, but I'd say that's us, The Shitty Beatles.
Have you found it difficult to gain exposure as an up and coming band?
Magazines want to write about, and radio stations want to play, bands that their audience already knows about. And that's fair enough. It's only natural. It's hard to become a band that people know about without being in the magazines or being on the radio, but luckily AC/DC once wrote a very informative song about the distance one must travel if they wish to rock and roll, so we don't take it too much to heart.
You've had some impressive names working on your new album (Dave Crowe, Jack Farley, & Steve Rooke); how has it been having these people to collaborate with?
We were really happy with Dave and Jack's work. Also, we always try and work with people who not only have a track record but who are a pleasure to be around and they were that in spades. Steve Rooke, who mastered the record, we never actually met… which I think is actually kind of an amazing thing. It'd have been lovely to have met him; people like that always have stories to tell. But I love that in this day and age you can so easily access anyone and digitally transfer to and fro and communicate with them, it just opens up the whole world to you even you're just some pissant band from the arse-end of the world, you can still work with someone whose work you love.
What inspires you as a musician?
It sounds like a cop-out answer or a bit hard to understand… But just music itself and the fact that music even exists is I think pretty inspiring. If you stop to think about it, it's amazing the way a few different sounds played in the right order can have such a weird effect on you. I'm always inspired to keep coming back to music because I just feel like no matter how much music you make there's always more music waiting to be summoned into the world.
What are your thoughts on file sharing and the digital methods in which music is distributed these days? How does this affect you now, and how do you think it will affect you in the future?
I have mixed feelings about digital distribution. I love the ease with which music can now be accessed, but it's bittersweet for me because I lost a lot of money investing in a suppository-based music system which I believed at the time would be the next big-thing. Actually, if they'd been smaller that might have helped. Oh well.
If the opportunity ever presented it's self and you were given the chance to program RAGE, what would be your top five videos and why?
The Smashing Pumpkins, 1979. Flying Lotus, Parisian Goldfish. The Beatles, Hey Jude. Chemical Brothers, Let Forever Be. Weezer, Buddy Holly. Because the opportunity presented itself.
Catch The Honey Pies at the Adelaide 2012 Big Day Out and keep up-to-date with the band at their official site, Facebook and Youtube.
BAND NAME : The Honey Pies
BAND MEMBERS : Jon Marco (rhythm guitar), Tony Marshall (lead guitar), Tom McCarthy-Jones (bass), Marcus Warnecke (drums)
LATEST ALBUM / EP : Carpe Carp
KEY TRACKS : Girl, My O My O Me O My, Vespa
TIckets for the Adelaide Big Day Out can be bought here
Tickets for other cities can be bought here


My name is Noopur Pandey. I come from a Middle Class, Nuclear Family with Moderate Values. I have completed my B.A. and currently work in the Private Sector as an Airline Professional.
My sister's name is Pooja Singh and she is working in DLF in the Private sector. She has completed B.A. and B Ed. Grew up in a Upper Middle Class, Joint family with Moderate values. My father has retired from navy and m serving in INDIAN NAVY as an Officer.
I have created this profile for my sis-in-law, Hansa. She is a 25 year old girl, working with a buying agency as a Merchandiser. Standing true to the saying, "big things come in small packages', this sister of mine is a chirpy, hardworking, determined and honest-to-the-core person. Shes a mix between a simple girl with high values, a homely girl with all the street-smartness you would need in life... basically shes the kind of person youll slowly and steadily fall for.
My name is Tushita and I am working as a G.M sales and marketing with reputed Hotel. I have completed my Graduation from Delhi University and also done Elimentry education from M.P board. I have been raised up in a Middle Class, Nuclear Family with Moderate Values. My mother is Happy Home maker, father is ex service man from Indian Air Force, elder sister is married and younger brother is doing studies. I am a workoholic, fun Loving, straight forward girl I love to care people around me and simply not spare people who are fake and diplomatic. So spammers plz excuse me Dnt waste your and my time, only genuine interests are welcome.
My name is Khushbu and I have completed my B.A.. I belong to a Upper Middle Class, Nuclear Family with Moderate Values.
Alliance for Nov 1989 born, very fair, schooling from Naval Public School, daughter of Retd. Naval Officer(PMR)/VRS, presently working as a Secretary of a Delhi Development Authority (DDA) Sports Complex. Seeking suitable match, preferably from serving Defence Officer, upto 30 -32, years The girl is a graduate in Bachelor in Tourism Studies And has done Diploma in Early Childhood Care & Education, and Certificate in Guidance.She is working in an international MNC (Accenture).
shelley kumar my daughter is 25 yrs old. she is hard working sincere with cultural values. she is japanese interpreter and working in mnc.
My daughter's name is Namrata and she is our only child.She works in the Central Government Sector as a Music teacher in KVS. We belongs to a Middle Class, Nuclear Family with Moderate Values. She has completed her B.A. (hons.), from sndt university pune, and prabhakar from Prayag sangeet samiti allahabad.
A down to earth guy who leads a modern lifestyle but still firmly attached to the traditional indian values. A very responsible man who is the lynchpin of his family and his social circle as well. He is full of respect for his elders and seniors. Very cool, calm and composed guy who never gets angry and knows how to sort things out and how to get out of a tight spot with ease. Kind hearted, soft spoken, shy but still an extrovert, a tireless worker in the office and a sports enthusiast who is full of adrenaline when it comes to visiting new places or doing any other fun activity. I am pretty sure he''ll love his wife like crazy. If you are looking for a cool guy who is very easy and fun to live with, your search stops right here.
I have a Bachelor's degree and I am currently stationed in Delhi working with Defence sector (army). I belong to a middle class, nuclear family with liberal values.
I have a Bachelor's degree and I am currently stationed in Delhi working in Defence sector (Army). I come from an Upper middle class, Joint family background with Liberal values.
I am working in Defence sector (Army) with a Bachelor's degree. We are a Middle class - Joint family with Liberal values.
I have a Bachelor's degree and I am currently stationed in Delhi working in Defence sector (army). I come from an upper middle class, nuclear family background with moderate values.
My name is Deep Prakash. I have completed my B.A.. I grew up in a Middle Class, Nuclear family with Moderate.


text:
Caring for Kansas Leadership
Caring for Kansas management team is made up of two Intensive Care Unit RNs. They work alongside medical personnel daily, and they understand what a facility needs when acquiring supplemental staff. Caring for Kansas leadership is devoted to instilling excellence into every aspect of the business. Together they guide Caring for Kansas mission in assisting health care facilities function at their optimum level, and to help them achieve their strategic objectives. They guarantee the highest integrity and reliability of medical staffing services available. Caring for Kansas helps relieve the shortage of health care personnel by providing highly skilled, qualified workers who express competency, flexibility, and admirable performance.
Stephanie Ungles
RN BSN Chief Executive Officer
Stephanie is responsible for the overall direction of the organization and the development of high-level strategies that align with the company's mission, vision, and values.
Stephanie brings to Caring for Kansas more than 10 years of healthcare experience. Stephanie began her journey in the healthcare field at Kansas Cardiac Clinic in 2002 – 2006. She started her ICU career in CTICU at Via Christi North St. Francis campus recovering patients post heart surgery. This is where she met her husband and current business partner, Cody Ungles. They worked side by side for over six years. November of 2012 Stephanie left CTICU to work as an ICU float nurse when she was inspired to begin the nursing business path, creating her own agency.
Stephanie received her Bachelorette of Science in Nursing Degree from Bethel College in North Newton Kansas. She graduated from Northwest High School, and has lived in Kansas her entire life. Stephanie has been on several medical mission trips where she cared for those who were unable to afford surgery. She assisted in operating room and pre/post op area during her multiple mission projects. Stephanie has a very strong work ethic. She believes with a little determination and a lot of faith in the Lord anything can be accomplished!
C. Cody Ungles
RN BSN Chief OPERATING Officer
Cody is the Chief Operating Officer for Caring for Kansas. In his role, Cody is responsible for overseeing, developing, and setting the strategic direction for day-to-day business operations. Cody began his career as a CICU RN at Via Christi North St. Francis campus in Wichita, Kansas. Soon after he transitioned to CTICU. He was then promoted to Charge Nurse where he has planned for care provision by making patient care assignments for the last 5 years. He has also helped shape new nurses into model employees by acting as a clinical preceptor. Codys greatest strengths are his creativity, drive, and leadership. He thrives on challenges, particularly those that expand the companys reach.
Cody graduated from Wichita State University with a Bachelor of Science degree in Nursing with a minor in Psychology. Cody grew up in the small town of Colwich, Kansas, and is the second oldest of seven children. He attended Andale High School and graduated with athletic and academic scholarships to play football at Friends University. He played two seasons at Friends University, before transferring to Wichita State University to further his education in nursing. Cody firmly believes that being tolerant and flexible to different situations helps him lead by inspiring transparency and trust.
Caring for Kansas, Inc.
4059 N. Westbrook Ct.
Maize, KS 67101
316.204. 0845 Stephanie Ungles
316.640. 8998 Cody Ungles
Copyright Caring for Kansas, Inc. 2013
© 2020 CK Medical Staffing


Brian Micheal Bendis is one of the most influential and divisive comic writers of the current generation. With his work at Marvel lauded as some of the best writing for certain characters (His work on Marvel Knights: DareDevil is exemplary, and often referred to as the best run on the character since Frank Miller), Bendis has a habit of creating characters and stories that thrill writers and grab the attention of the audience. Combined with the detailed artwork of Ryan Sook, who perfectly catches the Man Of Steel and the city of Metropolis, and the issues and series is already up there as some of the best work he's done, thanks to his magnificent storytelling, and the vibrant, eye-catching colours used by Sook, who continues to impress.
Bendis's telling of the "Man Of Steel" has been magnificent up to now, with his current arc focusing on Superman and his relationship with the city, especially with the arrival of new villain "Red Cloud", as well as focusing on the lives and stories of other characters in the Superman legend This issue is no different. Finally revealing the identity of the "Red Cloud", Bendis starts strong with a bar fight involving "The Question", someone also on the hunt for the identity of the cloud. Focusing on "The Question" interrogating a local criminal for information (who mistakes him for Batman, no less) after an attempted deal of a H.E.R.O device (a device allowing for temporary gaining of powers), he attempts to find out the identity of Red Cloud.
However, once Kent gets a call about a potential story regarding the Mayor putting pressure on the new Fire Chief to stop investigating a rash of suspicious fires, and with the Chief telling Kent of her suspicions, he dons the cape and tights to investigate using his alter ego.
The issue is great in my opinion. Its art is detailed and focused, and the story is griping and exciting. Although it would be difficult for readers unsure of the current storyline to just jump in, it is still gripping enough and interesting enough for readers, both casual and die hard alike, to dive in and continue with the series.
DC's Action Comics #1005, by Bendis and Sook, is on sale now, digitally or in your local comic store!


text:
Apple expands self-repair program to eight more countries
iOS VPN App
In context: The Right-To-Repair (R2R) movement has gradually gained traction within companies that have traditionally held on to their in-house repair regimes with white-knuckled control. Apple is a prime example. Where once it would not allow any repairs outside its authorized partners, it now lets regular customers attempt repairs if they want. It's still no easy task and is meant for people who know what they are doing, but that's what R2R was looking for anyway.
Apple is expanding its self-repair program to Europe. The service, launched in the US earlier this year, will now be available to eight additional countries, including Belgium, France, Germany, Italy, Poland, Spain, Sweden, and the UK.
Like the US version of the repair program, there are no restrictions on who can order the parts, tools, and repair manuals. Regular Joes are more than welcome to try to fix a broken screen if they feel up to the task. However, the program is more geared toward the technically inclined, current and former professionals, and unauthorized Apple repair shops.
Although the Self Service Repair Store carries more than 200 parts and tools, the DIY service is still quite limited. Customers can access components and repair kits for all iPhone 12 and 13 models and notebooks equipped with Apple silicon. So if you crack your iPhone 14 screen or need a new battery for your 2020 MacBook Pro, you'll still need to take it to an authorized Apple repair shop.
"We believe the best technology for our customers and for the planet is technology that lasts, which is why we design our products to be durable and rarely require maintenance or repair," said Chief Operating Officer Jeff Williams. "But when a repair is needed, we want customers to have many options for safe, reliable, and secure repair. That's why we're excited to launch Self Service Repair in Europe, giving our customers direct access to genuine Apple parts, tools, and manuals."
Customers should remember that in addition to the cost of parts, which are not cheap, they will also have to pay a $49 one-week rental fee for the tools to complete the job. In some instances, this could mean more or about the same out-of-pocket costs as…
https://applesecrets.com/wp-content/uploads/2022/12/2022-12-06-image-12.jpg 1600 2449 AppleCrisp https://applesecrets.com/wp-content/uploads/2020/11/ASLogo5.png AppleCrisp2022-12-12 02:25:062022-12-12 02:25:06Apple expands self-repair program to eight more countries
Unbreakable VPN Security
Get Protected Now
Apple Mac Pro (Late 2013 - 2019) 3.5GHz 6-core Xeon E5-1650v2 - Used, Excellent condition $1,109.00
iPhone 14 Plus Symmetry Series+ Clear Antimicrobial Case for MagSafe Stardust 2.0 $49.95
iPhone 14 Pro Defender Series Pro Case Rain Check $64.95
Apple iPad 7 32GB Wi-Fi - Silver $229.00
iPhone 14 Symmetry Series+ Antimicrobial Case for MagSafe Euphoria $49.95
Categories Select Category Apple News Apple Videos Fanboy Videos iPad News iPhone News iPhone Videos Jailbreak Videos Malware News Product Review Repair Rumors Software Tech Notes
iPhone 15 Ultra: What it may look like, and what to expect in 2023 What happened to Apple's App Clips?


Bali ATV Ride and Trekking Packages is one of the best Bali ATV Ride Packages that we created for traveler which is bring you to the wonderful memory with different experiences. The tour will be start at 02.00 AM from your hotel then our driver will take you to Mount Batur Trekking start point, on your trekking to the top of the volcano you will be accompany by our trekking guide and give all the information about the volcano. Around 06.30 - 07.00 AM you will arrive at the top of the volcano where you can watch the spectacular view of sunrise. While you enjoy the sunrise we will serve your breakfast with steam egg from the volcano and a few sandwich.
After the trekking finish we will continue the journey to Ubud village where you will enjoy two hours Bali ATV Riding. This adventure will take you to an amazing experience riding on all-terrain vehicles (quad bike) with long and challenging track trough the rice fields, jungle, rivers, and natural Bali traditional village that are not monotone. It's safe and suitable for beginner and professional, after the atv ride finish we will serve your lunch at atv ride restaurant. The tour will be very comfortable with our private air conditioning car transfer and to keep your convenience and enjoyable journey our professional tour driver is always outstanding offer his best service with the information you need.


still the mind is its own place.
(and declining 'mine' and 'yours').
suffers where it has enjoyed.
This entry was posted in Blondin and tagged golden sunbeam, mine, no other, nothingness, silent splendor, void, yours. Bookmark the permalink.


The MPIF Publications Portal offers the most extensive selection of titles found anywhere related to the science, technology, and business of powder metallurgy and particulate materials. You can find books, conference proceedings, videos, digital downloads, and products covering every aspect of PM, and order them easily online for shipment anywhere in the world.
I'm not a member. Take me to the Publications Portal!
Explore this new PM resource today by visiting the MPIF Digital Library hosted by Greydon Press.


text:
require "test_helper"

class UsersControllerTest < ActionController::TestCase
  include ActiveJob::TestHelper

  def change_user_password(user_factory, new_password)
    original_password = "I am a very original password. Refrigerator weevil."
    user = create(user_factory, password: original_password)
    original_password_hash = user.encrypted_password
    sign_in user

    post :update_password,
         params: { id: user.id,
                   user: {
                     current_password: original_password,
                     password: new_password,
                     password_confirmation: new_password,
                   } }

    [user, original_password_hash]
  end

  context "PUT update_password" do
    should "changing passwords to something strong should succeed" do
      user, orig_password = change_user_password(:user, "destabilizers842}orthophosphate")

      assert_equal "302", response.code
      assert_equal root_url, response.location

      user.reload
      assert_not_equal orig_password, user.encrypted_password
    end

    should "changing password to something too short should fail" do
      user, orig_password = change_user_password(:user, "short")

      assert_equal "200", response.code
      assert_match "too short", response.body

      user.reload
      assert_equal orig_password, user.encrypted_password
    end

    should "changing password to something too weak should fail" do
      user, orig_password = change_user_password(:user, "zymophosphate")

      assert_equal "200", response.code
      assert_match "not strong enough", response.body

      user.reload
      assert_equal orig_password, user.encrypted_password
    end
  end

  context "PUT update_email" do
    setup do
      @user = create(:user, email: "old@email.com")
      sign_in @user
    end

    context "changing an email" do
      should "stage the change, send a confirmation email to the new address and email change notification to the old address" do
        perform_enqueued_jobs do
          put :update_email, params: { id: @user.id, user: { email: "new@email.com" } }

          @user.reload

          assert_equal "new@email.com", @user.unconfirmed_email
          assert_equal "old@email.com", @user.email

          confirmation_email = ActionMailer::Base.deliveries[-2]
          assert_equal "Confirm your email change", confirmation_email.subject
          assert_equal "new@email.com", confirmation_email.to.first

          email_changed_notification = ActionMailer::Base.deliveries.last
          assert_match(/Your .* Signon development email address is being changed/, email_changed_notification.subject)
          assert_equal "old@email.com", email_changed_notification.to.first
        end
      end

      should "log an event" do
        put :update_email, params: { id: @user.id, user: { email: "new@email.com" } }
        assert_equal 1, EventLog.where(event_id: EventLog::EMAIL_CHANGE_INITIATED.id, uid: @user.uid, initiator_id: @user.id).count
      end
    end
  end

  context "PUT resend_email_change" do
    should "send an email change confirmation email" do
      perform_enqueued_jobs do
        @user = create(:user_with_pending_email_change)
        sign_in @user

        put :resend_email_change, params: { id: @user.id }

        assert_equal "Confirm your email change", ActionMailer::Base.deliveries.last.subject
      end
    end

    should "use a new token if it's expired" do
      perform_enqueued_jobs do
        @user = create(
          :user_with_pending_email_change,
          confirmation_token: "old token",
          confirmation_sent_at: 15.days.ago,
        )
        sign_in @user

        put :resend_email_change, params: { id: @user.id }

        assert_not_equal "old token", @user.reload.confirmation_token
      end
    end
  end

  context "DELETE cancel_email_change" do
    setup do
      @user = create(:user_with_pending_email_change)
      sign_in @user
      request.env["HTTP_REFERER"] = edit_email_or_password_user_path(@user)
    end

    should "clear the unconfirmed_email and the confirmation_token" do
      delete :cancel_email_change, params: { id: @user.id }

      @user.reload
      assert_nil @user.unconfirmed_email
      assert_nil @user.confirmation_token
    end

    should "redirect to the user edit email or password page" do
      delete :cancel_email_change, params: { id: @user.id }
      assert_redirected_to edit_email_or_password_user_path(@user)
    end
  end

  context "GET show (as OAuth client application)" do
    setup do
      @application = create(:application)
    end

    should "fetching json profile with a valid oauth token should succeed" do
      user = create(:user)
      user.grant_application_permission(@application, "signin")
      token = create(:access_token, application: @application, resource_owner_id: user.id)

      @request.env["HTTP_AUTHORIZATION"] = "Bearer #{token.token}"
      get :show, params: { client_id: @application.uid, format: :json }

      assert_equal "200", response.code
      presenter = UserOAuthPresenter.new(user, @application)
      assert_equal presenter.as_hash.to_json, response.body
    end

    should "fetching json profile with a valid oauth token, but no client_id should succeed" do
      # For now.  Once gds-sso is updated everywhere, this will 401.

      user = create(:user)
      user.grant_application_permission(@application, "signin")
      token = create(:access_token, application: @application, resource_owner_id: user.id)

      @request.env["HTTP_AUTHORIZATION"] = "Bearer #{token.token}"
      get :show, params: { format: :json }

      assert_equal "200", response.code
      presenter = UserOAuthPresenter.new(user, @application)
      assert_equal presenter.as_hash.to_json, response.body
    end

    should "fetching json profile with an invalid oauth token should not succeed" do
      user = create(:user)
      token = create(:access_token, application: @application, resource_owner_id: user.id)

      @request.env["HTTP_AUTHORIZATION"] = "Bearer #{token.token.sub(/[0-9]/, 'x')}"
      get :show, params: { client_id: @application.uid, format: :json }

      assert_equal "401", response.code
    end

    should "fetching json profile with a token for another app should not succeed" do
      other_application = create(:application)
      user = create(:user)
      token = create(:access_token, application: other_application, resource_owner_id: user.id)

      @request.env["HTTP_AUTHORIZATION"] = "Bearer #{token.token.sub(/[0-9]/, 'x')}"
      get :show, params: { client_id: @application.uid, format: :json }

      assert_equal "401", response.code
    end

    should "fetching json profile without any bearer header should not succeed" do
      get :show, params: { client_id: @application.uid, format: :json }
      assert_equal "401", response.code
    end

    should "fetching json profile should include permissions" do
      user = create(:user, with_signin_permissions_for: [@application])
      token = create(:access_token, application: @application, resource_owner_id: user.id)

      @request.env["HTTP_AUTHORIZATION"] = "Bearer #{token.token}"
      get :show, params: { client_id: @application.uid, format: :json }
      json = JSON.parse(response.body)
      assert_equal(%w[signin], json["user"]["permissions"])
    end

    should "fetching json profile should include only permissions for the relevant app" do
      other_application = create(:application)
      user = create(:user, with_signin_permissions_for: [@application, other_application])

      token = create(:access_token, application: @application, resource_owner_id: user.id)

      @request.env["HTTP_AUTHORIZATION"] = "Bearer #{token.token}"
      get :show, params: { client_id: @application.uid, format: :json }
      json = JSON.parse(response.body)
      assert_equal(%w[signin], json["user"]["permissions"])
    end

    should "fetching json profile should update last_synced_at for the relevant app" do
      user = create(:user)
      user.grant_application_permission(@application, "signin")
      token = create(:access_token, application: @application, resource_owner_id: user.id)

      @request.env["HTTP_AUTHORIZATION"] = "Bearer #{token.token}"
      get :show, params: { client_id: @application.uid, format: :json }

      assert_not_nil user.application_permissions.first.last_synced_at
    end

    should "fetching json profile should fail if no signin permission for relevant app" do
      user = create(:user)
      token = create(:access_token, application: @application, resource_owner_id: user.id)

      @request.env["HTTP_AUTHORIZATION"] = "Bearer #{token.token}"
      get :show, params: { client_id: @application.uid, format: :json }

      assert_response :unauthorized
    end
  end

  context "as Admin" do
    setup do
      @user = create(:admin_user, email: "admin@gov.uk")
      sign_in @user
    end

    context "GET index" do
      should "list users" do
        create(:user, email: "another_user@email.com")
        get :index
        assert_select "td.email", /another_user@email.com/
      end

      should "not list api users" do
        create(:api_user, email: "api_user@email.com")
        get :index
        assert_select "td.email", count: 0, text: /api_user@email.com/
      end

      should "not show superadmin users" do
        create(:superadmin_user, email: "superadmin@email.com")

        get :index

        assert_select "tbody tr", count: 1
        assert_select "td.email", /#{@user.email}/
      end

      should "show user roles" do
        create(:user, email: "user@email.com")
        create(:super_org_admin, email: "superorgadmin@email.com")
        create(:organisation_admin, email: "orgadmin@email.com")

        get :index

        assert_select "td.role", "Normal"
        assert_select "td.role", "Organisation admin"
        assert_select "td.role", "Super organisation admin"
        assert_select "td.role", "Admin"
        assert_select "td.role", count: 4
      end

      should "show user organisation" do
        user = create(:user_in_organisation)

        get :index

        assert_select "td.organisation", user.organisation.name
      end

      context "CSV export" do
        should "respond to CSV format" do
          get :index, params: { format: :csv }
          assert_response :success
          assert_equal "text/csv", @response.media_type
        end

        should "export filtered users by role" do
          create(:user)
          get :index, params: { role: "normal", format: :csv }
          lines = @response.body.lines
          assert_equal(2, lines.length)
        end

        should "export filtered users by all fields" do
          organisation = create(:organisation, name: "Cookies Of Other Lands", abbreviation: "COOL")

          create(:suspended_user, name: "Special cookie", email: "specialcookie@email.com", role: "normal", organisation: organisation)
          create(:suspended_user, name: "Normal cookie", email: "normalcookie@email.com", role: "normal", organisation: organisation)

          assert_equal(3, User.count)

          get :index, params: { role: "normal", status: "suspended", organisation: organisation, two_step_status: false, filter: "special", format: :csv }

          lines = @response.body.lines
          assert_equal(2, lines.length)
        end

        should "export all users when no filter selected" do
          create(:user)
          get :index, params: { format: :csv }
          lines = @response.body.lines
          assert_equal(3, lines.length)
        end
      end

      should "let you paginate by the first letter of the name" do
        create(:user, name: "alf", email: "a@email.com")
        create(:user, name: "zed", email: "z@email.com")

        get :index, params: { letter: "Z" }

        assert_select "td.email", /z@email.com/
        assert_select "tbody tr", count: 1
      end

      context "filter" do
        setup do
          create(:user, email: "not_admin@gov.uk")
        end

        should "filter results to users where their name or email contains the string" do
          create(:user, email: "special@gov.uk")
          create(:user, name: "Someone special", email: "someone@gov.uk")

          get :index, params: { filter: "special" }

          assert_select "tbody tr", count: 2
          assert_select "td.email", /special@gov.uk/
          assert_select "td.email", /someone@gov.uk/
        end

        should "scope list of users by role" do
          get :index, params: { role: "normal" }

          assert_select "tbody tr", count: 1
          assert_select "td.email", /admin@gov.uk/
        end

        should "scope filtered list of users by role" do
          create(:organisation_admin, email: "xyz@gov.uk")

          get :index, params: { filter: "admin", role: "admin" }

          assert_select "tbody tr", count: 1
          assert_select "td.email", /admin@gov.uk/
        end

        should "scope list of users by permission" do
          user_application_permissions = create_list(:user_application_permission, 2)

          user_application_permissions.each do |uap|
            get :index, params: { permission: uap.supported_permission_id }

            assert_select "tbody tr", count: 1
            assert_select "td.email", /#{uap.user.email}/
          end
        end
      end

      should "scope list of users by status" do
        create(:suspended_user, email: "suspended_user@gov.uk")

        get :index, params: { status: "suspended" }

        assert_select "tbody tr", count: 1
        assert_select "td.email", /suspended_user@gov.uk/
      end

      should "scope list of users by status and role" do
        create(:suspended_user, email: "suspended_user@gov.uk", role: "admin")
        create(:suspended_user, email: "normal_suspended_user@gov.uk")

        get :index, params: { status: "suspended", role: "admin" }

        assert_select "tbody tr", count: 1
        assert_select "td.email", /suspended_user@gov.uk/
      end

      should "scope list of users by organisation" do
        user = create(:user_in_organisation, email: "orgmember@gov.uk")

        get :index, params: { organisation: user.organisation.id }

        assert_select "tbody tr", count: 1
        assert_select "td.email", /orgmember@gov.uk/
      end

      context "as superadmin" do
        should "not list api users" do
          @user.update_column(:role, "superadmin")
          create(:api_user, email: "api_user@email.com")

          get :index

          assert_select "td.email", count: 0, text: /api_user@email.com/
        end
      end
    end

    context "GET edit" do
      should "show the form" do
        not_an_admin = create(:user)
        get :edit, params: { id: not_an_admin.id }
        assert_select "input[name='user[email]'][value='#{not_an_admin.email}']"
      end

      should "show the pending email if applicable" do
        another_user = create(:user_with_pending_email_change)
        get :edit, params: { id: another_user.id }
        assert_select "input[name='user[unconfirmed_email]'][value='#{another_user.unconfirmed_email}']"
      end

      should "show the organisation to which the user belongs" do
        user_in_org = create(:user_in_organisation)
        org_with_user = user_in_org.organisation
        other_organisation = create(:organisation, abbreviation: "ABBR")

        get :edit, params: { id: user_in_org.id }

        assert_select "select[name='user[organisation_id]']" do
          assert_select "option", count: 3
          assert_select "option[selected=selected]", count: 1
          assert_select %(option[value="#{org_with_user.id}"][selected=selected]), text: org_with_user.name_with_abbreviation
          assert_select %(option[value="#{other_organisation.id}"]), text: other_organisation.name_with_abbreviation
        end
      end

      should "not be able to edit superadmins" do
        superadmin = create(:superadmin_user)

        get :edit, params: { id: superadmin.id }

        assert_redirected_to root_path
        assert_match(/You do not have permission to perform this action./, flash[:alert])
      end

      should "can give permissions to all applications" do
        delegatable_app = create(:application, with_delegatable_supported_permissions: %w[signin])
        non_delegatable_app = create(:application, with_supported_permissions: %w[signin])
        delegatable_no_access_to_app = create(:application, with_delegatable_supported_permissions: %w[signin])
        non_delegatable_no_access_to_app = create(:application, with_supported_permissions: %w[signin])

        @user.grant_application_permission(delegatable_app, "signin")
        @user.grant_application_permission(non_delegatable_app, "signin")

        user = create(:user_in_organisation)

        get :edit, params: { id: user.id }

        assert_select ".container" do
          # can give permissions to a delegatable app
          assert_select "td", count: 1, text: delegatable_app.name
          # can give permissions to a non delegatable app
          assert_select "td", count: 1, text: non_delegatable_app.name
          # can give permissions to a delegatable app the admin doesn't have access to
          assert_select "td", count: 1, text: delegatable_no_access_to_app.name
          # can give permissions to a non-delegatable app the admin doesn't have access to
          assert_select "td", count: 1, text: non_delegatable_no_access_to_app.name
        end
      end

      context "organisation admin" do
        should "not be able to assign organisations" do
          organisation_admin = create(:organisation_admin)
          create(:organisation)
          sign_in organisation_admin

          user = create(:user_in_organisation, organisation: organisation_admin.organisation)

          get :edit, params: { id: user.id }

          assert_select "select[name='user[organisation_id]']", count: 0
        end

        should "be able to give permissions only to applications they themselves have access to and that also have delegatable signin permissions" do
          delegatable_app = create(:application, with_delegatable_supported_permissions: %w[signin])
          non_delegatable_app = create(:application, with_supported_permissions: %w[signin])
          delegatable_no_access_to_app = create(:application, with_delegatable_supported_permissions: %w[signin])
          non_delegatable_no_access_to_app = create(:application, with_supported_permissions: %w[signin])

          organisation_admin = create(:organisation_admin, with_signin_permissions_for: [delegatable_app, non_delegatable_app])

          sign_in organisation_admin

          user = create(:user_in_organisation, organisation: organisation_admin.organisation)

          get :edit, params: { id: user.id }

          assert_select "#editable-permissions" do
            # can give access to a delegatable app they have access to
            assert_select "td", count: 1, text: delegatable_app.name
            # can not give access to a non-delegatable app they have access to
            assert_select "td", count: 0, text: non_delegatable_app.name
            # can not give access to a delegatable app they do not have access to
            assert_select "td", count: 0, text: delegatable_no_access_to_app.name
            # can not give access to a non delegatable app they do not have access to
            assert_select "td", count: 0, text: non_delegatable_no_access_to_app.name
          end
        end

        should "be able to see all permissions to applications for a user" do
          delegatable_app = create(:application, with_delegatable_supported_permissions: %w[signin Editor])
          non_delegatable_app = create(:application, with_supported_permissions: ["signin", "GDS Admin"])
          delegatable_no_access_to_app = create(:application, with_delegatable_supported_permissions: ["signin", "GDS Editor"])
          non_delegatable_no_access_to_app = create(:application, with_supported_permissions: ["signin", "Import CSVs"])

          organisation_admin = create(:organisation_admin, with_signin_permissions_for: [delegatable_app, non_delegatable_app])

          sign_in organisation_admin

          user = create(
            :user_in_organisation,
            organisation: organisation_admin.organisation,
            with_permissions: { delegatable_app => %w[Editor],
                                non_delegatable_app => ["signin", "GDS Admin"],
                                delegatable_no_access_to_app => ["signin", "GDS Editor"],
                                non_delegatable_no_access_to_app => ["signin", "Import CSVs"] },
          )

          get :edit, params: { id: user.id }

          assert_select "h2", "All Permissions for this user"
          assert_select "#all-permissions" do
            # can see permissions for a delegatable app the user has access to
            assert_select "td", count: 1, text: delegatable_app.name
            # can see permissions to a non-delegatable app the user has access to
            assert_select "td", count: 1, text: non_delegatable_app.name
            # can see permissions to a delegatable app the user has access to
            assert_select "td", count: 1, text: delegatable_no_access_to_app.name
            # can see permissions to a non delegatable app the user has access to
            assert_select "td", count: 1, text: non_delegatable_no_access_to_app.name
            # can see that user has signin permission for three of the four applications in "Has access?" column
            assert_select "td", count: 3, text: "Yes"
            assert_select "td", count: 1, text: "No"
            # can see role
            assert_select "td", count: 1, text: "Editor"
            assert_select "td", count: 1, text: "GDS Admin"
            assert_select "td", count: 1, text: "GDS Editor"
            assert_select "td", count: 1, text: "Import CSVs"
          end
        end
      end

      context "super organisation admin" do
        should "not be able to assign organisations" do
          super_org_admin = create(:super_org_admin)
          outside_organisation = create(:organisation)
          sign_in super_org_admin

          user = create(:user_in_organisation, organisation: super_org_admin.organisation)

          get :edit, params: { id: user.id }

          assert_select "select[name='user[organisation_id]']", count: 0
          assert_select "td", count: 0, text: outside_organisation.id
        end

        should "be able to give permissions only to applications they themselves have access to and that also have delegatable signin permissions" do
          delegatable_app = create(:application, with_delegatable_supported_permissions: %w[signin])
          non_delegatable_app = create(:application, with_supported_permissions: %w[signin])
          delegatable_no_access_to_app = create(:application, with_delegatable_supported_permissions: %w[signin])
          non_delegatable_no_access_to_app = create(:application, with_supported_permissions: %w[signin])

          super_org_admin = create(:super_org_admin, with_signin_permissions_for: [delegatable_app, non_delegatable_app])

          sign_in super_org_admin

          user = create(:user_in_organisation, organisation: super_org_admin.organisation)

          get :edit, params: { id: user.id }

          assert_select "#editable-permissions" do
            # can give access to a delegatable app they have access to
            assert_select "td", count: 1, text: delegatable_app.name
            # can not give access to a non-delegatable app they have access to
            assert_select "td", count: 0, text: non_delegatable_app.name
            # can not give access to a delegatable app they do not have access to
            assert_select "td", count: 0, text: delegatable_no_access_to_app.name
            # can not give access to a non delegatable app they do not have access to
            assert_select "td", count: 0, text: non_delegatable_no_access_to_app.name
          end
        end

        should "be able to see all permissions to applications for a user" do
          delegatable_app = create(:application, with_delegatable_supported_permissions: %w[signin Editor])
          non_delegatable_app = create(:application, with_supported_permissions: ["signin", "GDS Admin"])
          delegatable_no_access_to_app = create(:application, with_delegatable_supported_permissions: ["signin", "GDS Editor"])
          non_delegatable_no_access_to_app = create(:application, with_supported_permissions: ["signin", "Import CSVs"])

          super_org_admin = create(:super_org_admin, with_signin_permissions_for: [delegatable_app, non_delegatable_app])

          sign_in super_org_admin

          user = create(
            :user_in_organisation,
            organisation: super_org_admin.organisation,
            with_permissions: { delegatable_app => %w[Editor],
                                non_delegatable_app => ["signin", "GDS Admin"],
                                delegatable_no_access_to_app => ["signin", "GDS Editor"],
                                non_delegatable_no_access_to_app => ["signin", "Import CSVs"] },
          )

          get :edit, params: { id: user.id }

          assert_select "h2", "All Permissions for this user"
          assert_select "#all-permissions" do
            # can see permissions for a delegatable app the user has access to
            assert_select "td", count: 1, text: delegatable_app.name
            # can see permissions to a non-delegatable app the user has access to
            assert_select "td", count: 1, text: non_delegatable_app.name
            # can see permissions to a delegatable app the user has access to
            assert_select "td", count: 1, text: delegatable_no_access_to_app.name
            # can see permissions to a non delegatable app the user has access to
            assert_select "td", count: 1, text: non_delegatable_no_access_to_app.name
            # can see that user has signin permission for three of the four applications in "Has access?" column
            assert_select "td", count: 3, text: "Yes"
            assert_select "td", count: 1, text: "No"
            # can see role
            assert_select "td", count: 1, text: "Editor"
            assert_select "td", count: 1, text: "GDS Admin"
            assert_select "td", count: 1, text: "GDS Editor"
            assert_select "td", count: 1, text: "Import CSVs"
          end
        end
      end

      context "superadmin" do
        should "not be able to see all permissions to applications for a user" do
          delegatable_app = create(:application, with_delegatable_supported_permissions: %w[signin Editor])
          non_delegatable_app = create(:application, with_supported_permissions: ["signin", "GDS Admin"])
          delegatable_no_access_to_app = create(:application, with_delegatable_supported_permissions: ["signin", "GDS Editor"])
          non_delegatable_no_access_to_app = create(:application, with_supported_permissions: ["signin", "Import CSVs"])

          superadmin = create(:superadmin_user, with_signin_permissions_for: [delegatable_app, non_delegatable_app])

          sign_in superadmin

          user = create(
            :user_in_organisation,
            organisation: superadmin.organisation,
            with_permissions: { delegatable_app => %w[Editor],
                                non_delegatable_app => ["signin", "GDS Admin"],
                                delegatable_no_access_to_app => ["signin", "GDS Editor"],
                                non_delegatable_no_access_to_app => ["signin", "Import CSVs"] },
          )

          get :edit, params: { id: user.id }

          assert_select "h2", count: 0, text: "All Permissions for this user"
          assert_select "#all-permissions", count: 0
        end
      end
    end

    context "PUT update" do
      should "update the user" do
        another_user = create(:user, name: "Old Name")
        put :update, params: { id: another_user.id, user: { name: "New Name" } }

        assert_equal "New Name", another_user.reload.name
        assert_redirected_to users_path
        assert_equal "Updated user #{another_user.email} successfully", flash[:notice]
      end

      should "not be able to update superadmins" do
        superadmin = create(:superadmin_user)

        put :edit, params: { id: superadmin.id, user: { email: "normal_user@example.com" } }

        assert_redirected_to root_path
        assert_match(/You do not have permission to perform this action./, flash[:alert])
      end

      should "update the user's organisation" do
        user = create(:user_in_organisation)

        assert_not_nil user.organisation
        put :update, params: { id: user.id, user: { organisation_id: nil } }
        assert_nil user.reload.organisation
      end

      context "organisation admin" do
        should "not be able to assign organisation ids" do
          admin = create(:organisation_admin)
          sub_organisation = create(:organisation, parent: admin.organisation)
          sign_in admin

          user = create(:user_in_organisation, organisation: sub_organisation)
          assert_not_nil user.organisation

          put :update, params: { id: user.id, user: { organisation_id: admin.organisation.id } }

          assert_redirected_to root_path
          assert_match(/You do not have permission to perform this action./, flash[:alert])
        end
      end

      should "redisplay the form if save fails" do
        another_user = create(:user)
        put :update, params: { id: another_user.id, user: { name: "" } }
        assert_select "form#edit_user_#{another_user.id}"
      end

      should "not let you set the role" do
        not_an_admin = create(:user)
        put :update, params: { id: not_an_admin.id, user: { role: "admin" } }
        assert_equal "normal", not_an_admin.reload.role
      end

      context "you are a superadmin" do
        setup do
          @user.update_column(:role, "superadmin")
        end

        should "let you set the role" do
          not_an_admin = create(:user)
          put :update, params: { id: not_an_admin.id, user: { role: "admin" } }
          assert_equal "admin", not_an_admin.reload.role
        end
      end

      context "changing an email" do
        should "not re-confirm email" do
          normal_user = create(:user, email: "old@email.com")
          put :update, params: { id: normal_user.id, user: { email: "new@email.com" } }

          assert_nil normal_user.reload.unconfirmed_email
          assert_equal "new@email.com", normal_user.email
        end

        should "log an event" do
          normal_user = create(:user, email: "old@email.com")
          put :update, params: { id: normal_user.id, user: { email: "new@email.com" } }

          assert_equal 1, EventLog.where(event_id: EventLog::EMAIL_CHANGED.id, uid: normal_user.uid, initiator_id: @user.id).count
        end

        should "send email change notifications to old and new email address" do
          perform_enqueued_jobs do
            normal_user = create(:user, email: "old@email.com")
            put :update, params: { id: normal_user.id, user: { email: "new@email.com" } }

            email_change_notifications = ActionMailer::Base.deliveries[-2..]
            assert_equal email_change_notifications.map(&:subject).uniq.count, 1
            assert_match(/Your .* Signon development email address has been updated/, email_change_notifications.map(&:subject).first)
            assert_equal(%w[old@email.com new@email.com], email_change_notifications.map { |mail| mail.to.first })
          end
        end

        context "an invited-but-not-yet-accepted user" do
          should "change the email, and send an invitation email" do
            perform_enqueued_jobs do
              another_user = User.invite!(name: "Ali", email: "old@email.com")
              put :update, params: { id: another_user.id, user: { email: "new@email.com" } }

              another_user.reload
              assert_equal "new@email.com", another_user.reload.email
              invitation_email = ActionMailer::Base.deliveries[-3]
              assert_equal "Please confirm your account", invitation_email.subject
              assert_equal "new@email.com", invitation_email.to.first
            end
          end
        end
      end

      context "changing a role" do
        should "log an event" do
          @user.update_column(:role, "superadmin")
          another_user = create(:user, role: "admin")
          put :update, params: { id: another_user.id, user: { role: "normal" } }

          assert_equal 1, EventLog.where(event_id: EventLog::ROLE_CHANGED.id, uid: another_user.uid, initiator_id: @user.id).count
        end
      end

      should "push changes out to apps" do
        another_user = create(:user, name: "Old Name")
        PermissionUpdater.expects(:perform_on).with(another_user).once

        put :update, params: { id: another_user.id, user: { name: "New Name" } }
      end

      context "update application access" do
        setup do
          sign_in create(:admin_user)
          @application = create(:application)
          @another_user = create(:user)
        end

        should "remove all applications access for a user" do
          @another_user.grant_application_permission(@application, "signin")

          put :update, params: { id: @another_user.id, user: {} }

          assert_empty @another_user.reload.application_permissions
        end

        should "add application access for a user" do
          put(
            :update,
            params: {
              id: @another_user.id,
              user: {
                supported_permission_ids: [
                  @application.supported_permissions.first.id,
                ],
              },
            },
          )

          assert_equal 1, @another_user.reload.application_permissions.count
        end
      end
    end

    context "PUT resend_email_change" do
      should "send an email change confirmation email" do
        perform_enqueued_jobs do
          another_user = create(:user_with_pending_email_change)
          put :resend_email_change, params: { id: another_user.id }

          assert_equal "Confirm your email change", ActionMailer::Base.deliveries.last.subject
        end
      end

      should "use a new token if it's expired" do
        another_user = create(
          :user_with_pending_email_change,
          confirmation_token: "old token",
          confirmation_sent_at: 15.days.ago,
        )
        put :resend_email_change, params: { id: another_user.id }

        assert_not_equal "old token", another_user.reload.confirmation_token
      end
    end

    context "DELETE cancel_email_change" do
      setup do
        @another_user = create(:user_with_pending_email_change)
        request.env["HTTP_REFERER"] = edit_user_path(@another_user)
      end

      should "clear the unconfirmed_email and the confirmation_token" do
        delete :cancel_email_change, params: { id: @another_user.id }

        @another_user.reload
        assert_nil @another_user.unconfirmed_email
        assert_nil @another_user.confirmation_token
      end

      should "redirect to the edit user admin page" do
        delete :cancel_email_change, params: { id: @another_user.id }
        assert_redirected_to edit_user_path(@another_user)
      end
    end

    should "disallow access to non-admins" do
      @user.update_column(:role, "normal")
      get :index
      assert_redirected_to root_path
    end
  end
end

redpajama_set_name: RedPajamaGithub


Sherie Ann Anderson, 64, of Green River died Dec. 2, at Memorial Hospital of Sweetwater County in Rock Springs.
She was a lifelong resident of Green River.
She was born March 7, 1950 in Rock Springs, the daughter of Harold Leslie Laughter and Ruth Rosetta Race Laughter. She attended school in Green River and graduated from Lincoln High School with the class of 1968.
She married David Lyle Anderson Jr. Oc. 5, 1968 in Green River. Their marriage was later solemnized in the Salt Lake LDS temple.
She was a member of The Church of Jesus Christ of Latter-day Saints. She was also a member of the Daughters of Utah Pioneers.
She worked as a tax consultant in her own business and also for H&R Block.
Survivors include her husband David Anderson of Green River; son David Lyle Anderson III of Green River; daughters Paula Anderson of Casper, Veronique Sillitoe and husband Justin of Salt Lake City, Melinda Finley and husband Brandon of Green River, Cindi Watkins and husband Tyler of Green River, and Simone Anderson of Salt Lake City; grandchildren Ashlee Bolding and husband Jonathan of Casper, Triston Rice of Casper, Michial Anderson of Green River, Joshua Anderson of Green River, Araya and Gage Finley of Green River, Kaylyn Anderson, Dixie Watkins, Joseph Watkins, all of Green River, Maliyah Pangos of Salt Lake City; great-grandchild Declan Bolding of Casper; as well as numerous aunts, uncles, cousins, nieces, and nephews.
She was preceded in death by her parents, brother Theron Laughter, and sister Glyda Gaddo.
Interment will be at the Riverview Cemetery, Green River.


text:
Far-right mag's racial slur on minister nets fine
blackrace
A racist magazine cover has resulted in a fine for a French publication. Photo: AFP
A far-right publication that compared France's justice minister, who is black, to a monkey was hit on Thursday with a €10,000 fine for making racist statements.
The head of a French far-right satirical magazine was fined €10,000 ($12,500)on Thursday after his publication compared the country's black justice minister to a monkey.
A Paris court handed down the fine to Jean-Marie Molitor, boss of the Minute weekly for making insulting racist statements in public.
In November, the weekly featured on its front cover a picture of Justice Minister Christiane Taubira with headlines that read: "Crafty as a monkey" and "Taubira gets her banana back".
The text was deliberately ambiguous: the term "crafty as a monkey" in French can be used as praise while getting your banana back is roughly the equivalent of recovering the spring in your step.
Taubira herself described the newspaper's words as "extremely violent" and "denying she belonged to the human race".
The provocative cover page was an obvious reference to two other cases of Taubira being publicly likened to a monkey, incidents which sparked outrage in France amid a perceived surge in intolerance.
Judges ruled that in this context, the magazine must have been aware that they were "reviving the argument rather than calming it" and that "reiterating these allusions to a primate could even been seen as an additional
provocation."
The comparison was an allusion to a "clearly racist cliche", ruled the court.
Molitor, who describes the publication as "free and independent", not far-right, is still deciding whether to appeal, according to his lawyer, Frederic Pichon.
Founded in 1962, Minute was once one of France's biggest-selling weeklies with its appeal based on a cocktail of right-wing politics, initially centred on opposition to France's retreat from its former colony Algeria, cartoons and
show business coverage.
Its fortunes have declined considerably since the 1970s with its focus narrowing to an exclusively far-right agenda and it has a record of publishing highly provocative articles with the apparent aim of drumming up publicity.
A recent brush with controversy was when it described the appointment of a Moroccan-born woman as education minister as a "provocation."
Six lesser-known sites that tell the story of Paris' black history
The tours that challenge the stereotype of Paris 'no-go zones'
Gabart, the record breaking French sailor in a hurry
Gang film pulled from French cinemas over Paris attacks
Race: Lines blur between French right and far-right
France could remove word 'race' after scandal
France refuses to pay slavery reparations
Guerlain guilty of racism
OPINION: Rows over Benzema and the French football anthem show race is still the key issue for Marine Le Pen
Islamo-gauchisme – what does it mean and why is it controversial in France?
Outrage after French magazine depicts black MP as a slave


Sierra Instruments – a global leader in flow measurement and control for over 40 years.
We design and manufacture high-performance flow instrumentation for gas, liquid and steam applications commonly found in the semiconductor, environmental, scientific research, petrochemical, energy, aerospace, and general manufacturing industries. With over 150 offices in 50 countries, Sierra is uniquely positioned to provide their innovative products and lifetime support for the leading companies of today and the growth enterprises of tomorrow.
Our engineers at the show, who will include Martin Rowe our UK Sales Manager, aided by Water and Air test stands, installed with working versions of our range of industrial thermal mass, Vortex, and Ultrasonic flow meters, will be available to explain the functionality of the various instruments on display and applications you may be considering.


The Magus Era - Chapter 433 - AnythingNovel.com Read online any english novel around the world.
was no better, with only thirty-eight Acupoints awakened in total.
fragile that one could even break them by simply giving a puff.
defense that was great enough.
light flake in front of them.
Buzz! Followed by this loud sound, those bright light flakes vibrated intensely.
and rampantly cutting like countless sharp saw blades.
beautiful dark pieces of ice.
all Senior Magi, they were true Senior Magi after all.
this shield automatically; Shaosi hadn't even made her move.
heavily like injured wild beasts, and even their eyeballs had turned red.
only turn all the shame and anger muffled in his chest into a roar.
suddenly transformed into a white bolt of lightning, darted straight out.
of these men as if nothing could ever stop it.
against the ground in tens of zhangs away, struggling and crying.
then slightly swung her hand.
those captives back to Pu Ban City.
one of those non-humankind monsters, one of their deadly enemies.
growled out in rage, leading his clansmen to approach Shaosi with big steps.


OPEN Sat 3/2 12-2 PM. Nestled between 2 ponds on a private 1/2 acre w/no rear neighbors, & expansive patio, this home is an entertainer's dream. Great room w/2 story fireplace & windows flowing into the well appointed kitchen features an endless island. New, low profile carpet throughout & plenty of rec space w/bonus room, cozy reading nooks, plus family room on main level. Spa-like master w/private fireplace & steam shower. Don't miss the fully equipped gym off a massive 4 car garage.
Please contact me about the property for sale at 435 W Two Rivers Dr!


We service all makes and models of air conditioning and heating equipment. Our factory trained technicians can resolve your heating and cooling problems quickly.
Ask how our Preventative Maintenance Program will save you money and prevent unwanted breakdowns during the peak season.
Most people are not aware that heating and cooling equipment should be serviced twice a year. In fact, all manufacturers require maintenance in order to keep any warranty valid. Not to mention it will reduce energy bills and lengthen the lifetime of the system(s).
We offer a comprehensive maintenance program for both the fall and spring seasons. This prepares your HVAC for the stress of the coming months. As part of our HVAC maintenance in Cedar Rapids, IA, we test capacitors, inspect and clean evaporators, and insure proper thermostat operation.
Sometimes, electrical connections can become weak. We tighten these connections to return them to their proper function.
Call us today for more information and to schedule a repair or HVAC maintenance in Cedar Rapids, Iowa.


Duke Johnson is a graduate of NYC and the American Film Institute. Anomalisa, which Duke directed alongside Charlie Kaufman, is his first feature film and was nominated for an Academy Award in the Animated Feature Film category. Duke's previous credits include the Adult Swim shows Moral Orel, Mary Shelley's Frankenhole and Beforel Orel. He directed the Emmy Award winning episode of NBC's Community: Abed's Uncontrollable Christmas.


Ground pork cutlets can be served as a dinner entrée with potatoes and side vegetables.
The popularity of crepes in Poland has earned the thin pancake a mention in Polish cookbooks.
Potatoes, prepared in one way or another, will accompany most Polish meat dishes.
Beets are a staple in the Polish kitchen and are often used in soups such as borsch.
This is the typical soup served at Sunday dinner, weddings and other family occasions.