Petrila

Petrila (Romanian pronunciation: [peˈtrila]; Hungarian: Petrilla) is a town in the Jiu Valley, Hunedoara County, Transylvania, Romania. It is located near the confluence of the rivers Jiul de Est, Taia and Jieț.

Petrila
Coat of arms
Location in Hunedoara County
Petrila
Location in Romania
Coordinates: 45°27′0″N 23°25′12″E
Country Romania
CountyHunedoara
Government
  MayorVasile Jurca[1] (PSD)
Area
308.68 km2 (119.18 sq mi)
Population
 (2011)[2]
22,692
  Density74/km2 (190/sq mi)
Time zoneEET/EEST (UTC+2/+3)
Vehicle reg.HD
Websitewww.petrila.ro

The town administers four villages: Cimpa (Csimpa), Jieț (Zsiec), Răscoala (Reszkola) and Tirici.

History

A Romanian town in the Carpathian Mountains, Petrila is an ancient settlement, but its existence was not documented until 1493 in a donation letter between Vladislav the First, King of Hungary and a Romanian prince named Mihai Cande.

The name of the town was noted in 1733 as coming from the Latin word “petrinus” ("pietros" in Romanian), which can be translated into English to mean “of stone”, a reference to the large coal deposits in the area that would become a profitable export in the Industrial Revolution. The exploitation of coal deposits in and around Petrila made the town grow as a single-industry town, revolving either around the mining of coal or the processing of the coal mined there, which is listed under the grade “Pitcoal”. Mining operations began in 1840, but the town would remain sparsely populated until the arrival of Western Moldavian workers forced to relocate by the former president of Romania Nicolae Ceaușescu under Communist rule. The restructuring of the economy since 1989 has led to a decrease in production and supply for the region, including Petrila.

It was the site in recent times of the Petrila Mine disaster, wherein two methane gas explosions in a coal mine on November 15, 2008 killed at least 12 miners and/or rescue workers. This is not the first time this millennium a coal mine in Petrila has suffered such an incident; another similar incident occurred in 2001.[3]

Economy

The mining in the town began in 1840 and the peak production of coal was in 1984 1,255,240 tonnes, since then it decreased to 504,000 tonnes.

Population

Historical population
YearPop.±%
195619,955    
196624,796+24.3%
197725,173+1.5%
199229,302+16.4%
200228,742−1.9%
201121,373−25.6%
Source: Census data

As of 2011, it had a population of 21,373. Of these, 93.97% were Romanians, 4.9% Hungarians and 0.73% Roma.

Natives

gollark: > `import hashlib`Hashlib is still important!> `for entry, ubq323 in {**globals(), **__builtins__, **sys.__dict__, **locals(), CONSTANT: Entry()}.items():`Iterate over a bunch of things. I think only the builtins and globals are actually used.The stuff under here using `blake2s` stuff is actually written to be ridiculously unportable, to hinder analysis. This caused issues when trying to run it, so I had to hackily patch in the `/local` thing a few minutes before the deadline.> `for PyObject in gc.get_objects():`When I found out that you could iterate over all objects ever, this had to be incorporated somehow. This actually just looks for some random `os` function, and when it finds it loads the obfuscated code.> `F, G, H, I = typing(lookup[7]), typing(lookup[8]), __import__("functools"), lambda h, i, *a: F(G(h, i))`This is just a convoluted way to define `enumerate(range))` in one nice function.> `print(len(lookup), lookup[3], typing(lookup[3])) #`This is what actually loads the obfuscated stuff. I think.> `class int(typing(lookup[0])):`Here we subclass `complex`. `complex` is used for 2D coordinates within the thing, so I added some helper methods, such as `__iter__`, allowing unpacking of complex numbers into real and imaginary parts, `abs`, which generates a complex number a+ai, and `ℝ`, which provvides the floored real parts of two things.> `class Mаtrix:`This is where the magic happens. It actually uses unicode homoglyphs again, for purposes.> `self = typing("dab7d4733079c8be454e64192ce9d20a91571da25fc443249fc0be859b227e5d")`> `rows = gc`I forgot what exactly the `typing` call is looking up, but these aren't used for anything but making the fake type annotations work.> `def __init__(rows: self, self: rows):`This slightly nonidiomatic function simply initializes the matrix's internals from the 2D array used for inputs.> `if 1 > (typing(lookup[1]) in dir(self)):`A convoluted way to get whether something has `__iter__` or not.
gollark: If you guess randomly the chance of getting none right is 35%ish.
gollark: Anyway, going through #12 in order:> `import math, collections, random, gc, hashlib, sys, hashlib, smtplib, importlib, os.path, itertools, hashlib`> `import hashlib`We need some libraries to work with. Hashlib is very important, so to be sure we have hashlib we make sure to keep importing it.> `ℤ = int`> `ℝ = float`> `Row = "__iter__"`Create some aliases for int and float to make it mildly more obfuscated. `Row` is not used directly in anywhere significant.> `lookup = [...]`These are a bunch of hashes used to look up globals/objects. Some of them are not actually used. There is deliberately a comma missing, because of weird python string concattey things.```pythondef aes256(x, X): import hashlib A = bytearray() for Α, Ҙ in zip(x, hashlib.shake_128(X).digest(x.__len__())): A.append(Α ^ Ҙ) import zlib, marshal, hashlib exec(marshal.loads(zlib.decompress(A)))```Obviously, this is not actual AES-256. It is abusing SHAKE-128's variable length digests to implement what is almost certainly an awful stream cipher. The arbitrary-length hash of our key, X, is XORed with the data. Finally, the result of this is decompressed, loaded (as a marshalled function, which is extremely unportable bytecode I believe), and executed. This is only used to load one piece of obfuscated code, which I may explain later.> `class Entry(ℝ):`This is also only used once, in `typing` below. Its `__init__` function implements Rule 110 in a weird and vaguely golfy way involving some sets and bit manipulation. It inherits from float, but I don't think this does much.> `#raise SystemExit(0)`I did this while debugging the rule 110 but I thought it would be fun to leave it in.> `def typing(CONSTANT: __import__("urllib3")):`This is an obfuscated way to look up objects and load our obfuscated code.> `return getattr(Entry, CONSTANT)`I had significant performance problems, so this incorporates a cache. This was cooler™️ than dicts.
gollark: The tiebreaker algorithm is vulnerable to any attack against Boris Johnson's Twitter account.
gollark: I can't actually shut them down, as they run on arbitrary google services.

See also

References

  1. "Results of the 2016 local elections". Central Electoral Bureau. Retrieved 3 April 2020.
  2. "Populaţia stabilă pe judeţe, municipii, oraşe şi localităti componenete la RPL_2011" (in Romanian). National Institute of Statistics. Retrieved 4 February 2014.
  3. "Gas blasts kill Romanian miners". BBC News. 15 November 2008. Retrieved 22 November 2008.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.