𝕿𝖊𝖈𝖍𝖗𝖎𝖌𝖍𝖙𝖘 Bulletin for Tuesday, January 11, 2022 ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ Generated Wed 12 Jan 02:41:44 GMT 2022 Created by Dr. Roy Schestowitz (𝚛𝚘𝚢 (at) 𝚜𝚌𝚑𝚎𝚜𝚝𝚘𝚠𝚒𝚝𝚣 (dot) 𝚌𝚘𝚖) Full hyperlinks for navigation omitted but are fully available in the originals The corresponding HTML versions are at 𝒕𝒆𝒄𝒉𝒓𝒊𝒈𝒉𝒕𝒔.𝒐𝒓𝒈 Latest in 𝒉𝒕𝒕𝒑://𝒕𝒆𝒄𝒉𝒓𝒊𝒈𝒉𝒕𝒔.𝒐𝒓𝒈/𝒕𝒙𝒕 and older bulletins can be found at 𝒉𝒕𝒕𝒑://𝒕𝒆𝒄𝒉𝒓𝒊𝒈𝒉𝒕𝒔.𝒐𝒓𝒈/𝒕𝒙𝒕-𝒂𝒓𝒄𝒉𝒊𝒗𝒆𝒔 Full IPFS index in 𝒉𝒕𝒕𝒑://𝒕𝒆𝒄𝒉𝒓𝒊𝒈𝒉𝒕𝒔.𝒐𝒓𝒈/𝒊𝒑𝒇𝒔 and as plain text in 𝒉𝒕𝒕𝒑://𝒕𝒆𝒄𝒉𝒓𝒊𝒈𝒉𝒕𝒔.𝒐𝒓𝒈/𝒊𝒑𝒇𝒔/𝒕𝒙𝒕 Gemini index for the day: gemini://gemini.techrights.org/2022/01/11/ ╒═══════════════════ 𝐑𝐄𝐂𝐄𝐍𝐓 𝐁𝐔𝐋𝐋𝐄𝐓𝐈𝐍𝐒 ════════════════════════════════════╕ Previous bulletins in IPFS (past 21 days, in chronological order): QmfL4kPLDVa6CGiB1yXozobGCQ5fTPahv8T7hPstsxvkie QmP2Y5UBBDqcCEECSknvoPU6WVjL4V93dQMbKj34jYv56N QmTTqHT1gu1SWzp4ejhsMMHeEr1cnaDHeAQnawx8obkmR5 QmVjqVfy1bLLkjPbYtUagNsq6vfXCToNocEPu1s2Cvo3ab QmXVB3t7bvESJpBXVnHEH2koE5NY8MqsHXWVco5dbnNW1M QmUnmYrNuwB9WxrYeqcbFyf8Bew66hMkdU1YVc9WsKh4JC QmYjUQnBiQsqQMypkyvfTj7b9arksYuzUe1BzJ9a6JUTk4 QmarLrYBMcbMFgab1qAkPGRjRr57niwUpd5PEPbMp8225S QmYYUiUwcwdiuMNs9EXu5Ci3ELNhZcY4b7JsFUZqp7drnc QmTWhb5PucmgsMLVAJufczuFnxY37RcgjXGMTczMdhndPd QmVgY18p35Thp6aWh7cRUuoocqLYGYFW2QnLEJhuqn69Kw QmcN2LseMFZtt5HtSJMT5h9HDZa4ZNy6B7uWe7gK8fPeF9 QmfH2by4K6HCiZyvyGQ1L5syH6ZSfcHH12ph6TDo82aovk QmbfkzNgEcSLWg1uktyXVKRqXdn8cURLS2BGZZ8j7BRu53 QmYyjvuyCsmKepqGvikeVazrauZqV2sNgUg5p2UhdxvGXe QmeizGYhw45pUpaYcuwBfE8NWgRhpFbkNtg8fZ7tGbAMXw QmfKHqGowjRxdQqskGCLaTJvfCGFi19QHkyd8kwa9PMJ21 QmP9Us6BzAW1DtJJVXeJt8AyhFyfNcNAfWtLTvSMzp6Ltp QmRocUr84sVRrmmhApYkrairZ9gM3urZnz5pkw4h6pxA9b QmQ1r9n2zgVqwtQ4bsQLNP2kbfnhn22xRMWVDD5qUuwkKF QmU5vYfwSWKbwcf52ai4QQxmeVvq2qk4Rno1afMvVcdEUm ╒═══════════════════ 𝐈𝐍𝐃𝐄𝐗 ═══════════════════════════════════════════════════╕ ⦿ Misuse of Buzzwords Like Artificial Intelligence and Internet of Things to Dodge Liability | Techrights ⦿ A Soup of Buzzwords From Brussels (the European Commission) | Techrights ⦿ Microsoft GitHub, DRM Enforcer, Bans Free Software | Techrights ⦿ [Teaser] Microsoft’s Balabhadra (Alex) Graveley Digging His Own Grave by Strangulation | Techrights ⦿ IRC Proceedings: Monday, January 10, 2022 | Techrights ⦿ Microsoft Thinks It Owns Mesa (and Computer Games) | Techrights ䷼ Bulletin articles (as HTML) to comment on (requires login): http://techrights.org/2022/01/11/artificial-intelligence-liability/#comments http://techrights.org/2022/01/11/buzzwords-from-brussels/#comments http://techrights.org/2022/01/11/dedrm-free-software/#comments http://techrights.org/2022/01/11/digging-his-own-graveley/#comments http://techrights.org/2022/01/11/irc-log-100122/#comments http://techrights.org/2022/01/11/phoronix-and-microsoft-mesa/#comments ䷞ Followed by Daily Links (assorted news picks curated and categorised): http://techrights.org/2022/01/11/dxvk-1-9-3/#comments http://techrights.org/2022/01/11/latte-dock-0-10-7/#comments http://techrights.org/2022/01/11/minted-mozilla/#comments ䷩ 𝚕𝚒𝚗𝚎 64 ╒═══════════════════ 𝐀𝐑𝐓𝐈𝐂𝐋𝐄 ═════════════════════════════════════════════════╕ (ℹ) Images, hyperlinks and comments at http://techrights.org/2022/01/11/artificial-intelligence-liability/#comments Gemini version at gemini://gemini.techrights.org/2022/01/11/artificial-intelligence-liability/ ⠀⌧ █▇▆▅▄▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 01.11.22⠀▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▃▄▅▆▇█ ⌧ Gemini_version_available_♊︎ ✐ Misuse_of_Buzzwords_Like_Artificial_Intelligence_and_Internet_of_Things_to Dodge_Liability⠀✐ Posted in Deception, Europe, Microsoft at 12:24 am by Dr. Roy Schestowitz 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇Hey Hi⦈ Artificial Intelligence (Hey Hi) isn’t a valid excuse Summary: Terms like “Artificial Intelligence” have long been used and misused to justify wrong “moderation” and various accidents (such as ‘driverless’ [sic] cars), but we can help European officials see through the façade and hold reckless companies accountable, in spite of all these disingenuous ‘legal hacks’ with loopholes they exploit/create (through lobbying) The EU is conducting a survey about some buzzwords, hype waves, and other nonsense. But eventually it is about liability, it is about who to hold accountable. Today, rather than present the survey, we’ll focus on some background information. The directive and supplementary information use_terms such as “Artificial Intelligence” and “Internet of Things”, so you know it’s not about substance but nebulous concepts. From the main page: “REPORT FROM THE COMMISSION TO THE EUROPEAN PARLIAMENT, THE COUNCIL AND THE EUROPEAN ECONOMIC AND SOCIAL COMMITTEE Report on the safety and liability implications of Artificial Intelligence, the Internet of Things and robotics…” Well, robotics is a real thing, machine learning methods are a real thing (statistics for the most part, albeit formalised within frameworks or sets of methodologies), but “Hey Hi” (AI) and the rest of it suggests we’re dealing here not with technical people but politicians infatuated/brainwashed by marketing people and corporate lobbyists. This_other_page says: “COMMISSION STAFF WORKING DOCUMENT Evaluation of Council Directive 85/374/EEC of 25 July 1985 on the approximation of the laws, regulations and administrative provisions of the Member States concerning liability for defective products Accompanying the document Report from the Commission to the European Parliament, the Council and the European Economic and Social Committee on the Application of the Council Directive on the approximation of the laws, regulations, and administrative provisions of the Member States concerning liability for defective products (85/374/EEC)…” This is about Directive 85/374/EEC, whose page says: “In 2020, the Commission published a report on the broader implications for, potential gaps in and orientations for, the liability and safety frameworks for artificial intelligence, the Internet of Things and robotics…” Of interest: * Reflections_on_trusting_trust_–_ACM * The_Software_Industry_IS_the_Problem_–_ACM_Queue * The_Software_Industry_IS_STILL_the_Problem_–_ACM_Queue * Cybersecurity_as_Realpolitik_by_Dan_Geer_presented_at_Black_Hat_USA_2014 –_YouTube * Cybersecurity_as_Realpolitik_–_Dan_Geer At this point in time, an associate has noted, “the goal would be to increase general awareness so that informed decisions can be made [...] rather than a call to action at this time it needs to be an awareness [campaign to] bring attention to four links just posted above. In the fourth link it is only part 3 which is relevant. [...] with the proper background knowledge it is an opportunity to nudge things the right direction, perhaps.” “So we are left today with 100s of millions if idiot companies with their idiot bosses and frazzled employees sending attachments and having multiple, conflicting versions of the same document, and having lost messages (via Microsoft Exchange) to add on top of the normal stress.”       –Techrights AssociatePutting aside buzzwords from EU officials, as the associate has worded it, “the questions in the survey are an attempt at addressing the problems even if they don’t know much about the software design underneath. One aspect which can be worthy of copious amounts of text would be the question of how much software is actually fit for purpose and what the protections people should have if they use it as advertised. Microsoft can’t have it both ways. They can’t both blame the victim at the same time as they are telling the victim that the software should be used in the way they are blaming the victim for using it in.” “For example, they design interfaces to be clicked on and obfuscate a lot of important information, including metadata, while embedding scripts and such, advertising it all as desirable features. Yet when those features are (mis)used the user is blamed instead of the the vendor. Same for attachments. Furthermore the reason e-mail is used as a surrogate for file sharing is that Microsoft killed off Novell NetWare without either replacing the functionality or allowing the market to fill the vacuum. So we are left today with 100s of millions if idiot companies with their idiot bosses and frazzled employees sending attachments and having multiple, conflicting versions of the same document, and having lost messages (via Microsoft Exchange) to add on top of the normal stress.” We shall follow up at a later time/date with suggestions of feedback for the EU. The above background can (or could) help prepare for a potent response, which we’ll do separately now that it’s over. This debate as a whole concerns strict_liability and with the consultation out of the way we have some critical words. “Current regulations regarding product liability seem to focus around goods sold and explicitly exclude services,” our associate notes. “An increasing amount of software is tied or run on remote servers, putting them into a hybrid category. As these lean towards becoming services (e.g. Microsoft Office) how much of that is being done as a dodge from product liability regulations? Software is covered, technically, but ignored so far. Products, thus software, are covered in particularly when they are used as advertised. Therefore when Microsoft victims use Microsoft products as advertised and still get harmed, Microsoft is technically liable, even if the laws have not yet been enforced that way.” [1, 2] “Council Directive_85/374/EEC_of_25_July_1985, article 6.1 could be revisited in the context of proprietary software:” Article 6 1. A product is defective when it does not provide the safety which a person is entitled to expect, taking all circumstances into account, including: (a) the presentation of the product; (b) the use to which it could reasonably be expected that the product would be put; (c) the time when the product was put into circulation. To conclude: “Microsoft should not be allowed to abuse Art. 7b to try to dodge; any holes that exist are there are the time of publication, public or not.” We’ll probably say a lot more later today, possibly in a video. █ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠄⣀⣀⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡿ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡨⡇ ⠀⠀⠀⢀⣀⣠⣼⣿⣿⣿⣿⣿⣿⣿⠟⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⢿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⡇ ⠀⠀⠀⠻⣿⠝⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣴⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢩⣿⣗ ⠀⠀⠀⣤⣵⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⡟⠁⠠⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣟ ⠀⠀⢾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⠇⠀⠀⢈⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣘⣞⣿⣯ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣤⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠙⠋⠉⠻⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠖⠂⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣮⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠨⠠⠀⠐⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣦⠄⠀⠀⠀⠉⠉⠉⠙⠻⣿⡿⠫⠶⢿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⣴⣾⣿⣿⣿⠃⠀⠀⠀⠀⠀⣀⠀⠀⠀⢿⣷⣶⣾⣾⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣶⠀⣀⣠⣄⠀⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠋⢿⣿⣿⣿⡇⠀⠀⠀⢀⣬⣿⣿⡀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⡤⠀⠀⢸⣿⣿⣿⣿⣴⠀⠀⠈⣿⣿⣿⠁⠀⠀⠀⢹⣿⣿⣿⣿⣿⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠋⠈⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⣀⠈⣿⣿⣿⣿⣿⡇⠀⠀⠘⢿⠃⠀⠀⠀⠀⣀⣿⣿⠟⡟⠋⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣶⣾⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⡀⠀⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⢼⣿⣿⡿⡿⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣿⣿⠿⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠲⣾⠟⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⣾⡿⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠻⠿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⣀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣶⠲⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣦⣤⣤⣾⣿⣿⡇⠀⠘⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢀⣤⣾⣿⣷⣶⣶⣶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⠻⣿⣿⣿⠿⢿⣿⡿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠙⢿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣼⣿⣷⣄⠈⠻⣷⣤⣈⠉⠙⠻⣿⡏⢿⣿⣿⣦⣄⡻⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⣀⣤⣶⣶⣶⣿⣿⣶⠒⠻⢿⣇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠘⢿⣿⣿⣿⣿⣿⣿⡈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⣀⣴⣿⣿⣿⣿⣧⠀⠈⠻⢿⠇⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠶⣒⣶⣾⣶⣾⣿⣭⣽⣭⣉⣙⠃⠈⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠘⠿⠿⠦⠀⠀⠀⠀⠷⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣫⣿⠟⣵⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⢺⣿⣀⣀⣀⡀⠀⠀⠲⣤⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯ ⠌⠩⠉⠉⠰⠉⠻⣏⣋⣉⣹⣿⣿⣿⣿⣿⣳⣿⣏⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠿⠁⠀⠘⠛⠛⠛⠛⠛⠂⠀⠀⠘⠛⠛⠛⠛⠻⠛⠃⠀⠉⠉⠉⠉⠛⠛⠛⠛⢛⡿⣇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⢤⣤⣤⣤⣤⣤⣤⣤⣄⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠃⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇ ⠀⠀⠀⢀⣀⢀⢸⣿⣿⣿⣿⣿⣿⣿⡿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡇ ⠀⠀⠀⢹⡧⣹⣾⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⡥⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡧ ⠀⠀⠀⣠⣵⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣌⣿⡇ ⠀⠀⢺⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣸⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣈⣻⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣠⣦⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣦⣦⡄⠀⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣧⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠙⠋⠙⠹⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣼⣿⣿⠇⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⠀⠀⠀⠀⣨⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⠓⠀⠀⠀⠀⠀⠉⠉⢻⣿⠟⢵⣶⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⣀⠀⠀⠀⠘⣿⣦⣶⣶⣷⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣶⠀⣀⣠⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠋⢿⣿⣿⣿⣇⡀⠀⠀⢠⣼⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⡿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠦⠀⠀⢸⣿⣿⣿⣿⣿⠀⠀⠘⢿⡟⠀⠀⠀⠾⠸⣿⣿⣿⣿⣿⡿⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠋⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⣠⣈⣿⣿⣿⣿⣿⡅⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⡇⠿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣶⣾⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⢸⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⡿⡶⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⡿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⣾⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠛⠿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄⣀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣶⠳⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⢳⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣥⣶⣶⣶⣤⣴⣾⣿⣿⣿⠀⠈⢿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⣠⣾⣿⣷⣶⣶⣶⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⣤⣤⣤⣄⡀⠀⢀⠀⠀⢸⣿⣿⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⡛⠛⠿⠿⣿⣿⡿⠿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡦⠉⠻⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠀⣀⣴⣾⡏⠉⠙⠻⠋⠀⠀⠀⠊⠈⠻⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⣀⡈⢿⣿⣦⡀⠙⣷⣤⣈⠉⠙⠛⣿⡟⢹⣿⣿⣦⣄⡹⣿⣿⣿⣿⣿⣿⣿⣆⠀⠐⠋⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠈⢿⣿⣿⣿⣿⣿⣿⡄⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣮⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣿⠉⢛⠟⣂⣀⣙⡿⠿⠿⠿⠿⢿⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⢀⣀⡤⣶⣶⣤⣤⣤⣤⣤⣠⣤⣤⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢟⣽⡿⢛⣵⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⢺⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇ ⠀⠉⠉⠉⠰⠉⠹⣏⣋⣉⣹⣿⣿⣿⣿⣿⣿⣟⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠏⠀⠀⠘⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠁⠀⠉⠉⠉⠉⠙⠛⠛⠛⢛⡿⣇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⢤⣤⣤⣤⣤⣤⣤⣤⣄⣄⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠋⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⡃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢐⡇ ⠀⠀⠀⢀⡀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠈⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡇ ⠀⠀⠀⠸⣣⣈⣾⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⠆⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢨⣿⡇ ⠀⠀⠀⣠⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⡃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣿⣧ ⠀⠀⢾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⢰⣶⣤⣤⣤⣴⣦⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣈⣻⣿ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⢾⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣗⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⡿⠉⠋⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣧⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠙⠉⠉⠛⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⡋⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣇⡠⠀⠀⢀⣀⣾⣿⣿⣿⣿⠿⠂⠀⠀⠉⠉⠙⢻⣿⣿⡿⠟⣙⣻⣿⣿⣿⣿⣿⣟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⡀⠀⢸⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⠀⠀⣨⣹⣿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣇⢸⠁⠀⢸⣿⣿⣿⣿⣿⣧⣤⣀⠀⠀⠀⠀⢀⣤⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣶⠀⣀⣠⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣀⡀⠀⣻⣿⣿⣿⣿⣿⣿⡛⠃⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠮⠽⢿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠐⠋⠉⢹⣿⣿⣿⣿⣿⣿⣿⠟⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠋⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⢰⣼⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⢹⣿⠗⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣶⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣸⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠉⢛⣻⣿⣿⡟⠃⠻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠀⠀⠀⠀⠀⠀⠀⠀⢈⣻⣿⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢺⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣍⠙⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⠙⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⡷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡄⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⡿⢷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⢳⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣼⣿⣿⣾⣷⣾⣿⣿⣿⡇⠀⠹⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⢠⣤⣬⣿⣿⡿⣷⠔⠀⠀⠀⠀⠀⠀⢠⣿⣿⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⢠⣴⣿⣿⣿⣷⣶⣶⣤⡀⠀⣤⣿⣧⣾⣿⡯⠀⠈⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣼⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠛⢿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⢿⣿⣿⣿⣿⣿⣿⣿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠌⠙⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⠻⠛⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡏⣿⣿⣿⣿⣿⠟⠛⠁⠀⠀⠀⠀⠘⠟ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣥⣬⣠⠄⠀⠀⠀⠻⣿⣿⣿⣄⠙⣿⣦⣌⡉⠙⠛⢿⣿⠛⣿⣿⣷⣤⡘⢿⣿⣿⣿⣿⣿⣿⡿⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣇⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣀⠀⠀⠀⠹⣿⣿⣿⡄⠈⢻⣿⣿⣷⣶⣿⣿⣇⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡆⠀⠀⠉⢹⣿⣿⣦⣀⠙⢿⣿⣿⣿⣿⣿⡄⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⢀⣀⣤⣶⣶⣶⣶⣶⣶⣶⣴⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠶⠀⠀⠀⠸⣿⣿⣿⣿⠀⠹⣿⣿⡿⠿⣿⣿⣶⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⢀⣺⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠈⠉⠉⠉⠰⠉⣻⣏⣋⣉⣹⣿⣿⣿⣻⣭⣤⣤⣄⣀⣤⣀⣠⣭⣍⣊⢴⣴⣴⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠛⠉⠀⠀⠀⠀⠴⠿⠝⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠃⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣤⣤⣤⣤⣤⣤⣤⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⣄⣤⣄⠀⠀⠀⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⢿⣟⠻⠛⠀⠀⠈⠙⠛⠹⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁ ⠀⠀⠀⢀⢀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠉⠉⠀⠀⠀⠀⣙⣇⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡇ ⠀⠀⠀⠸⡏⠐⣾⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠀⠀⠀⠀⠀⠀⣀⣼⣿⣿⣿⣋⢻⣿⣿⣿⣿⣿⣣⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⡇ ⠀⠀⠀⣠⣤⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⣤⣤⣤⣶⣾⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣄⣿⡇ ⠀⠀⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣕⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣘⣻⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⠿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠙⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠋⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⣾⣿⣿⣟⡃⠀⠀⠀⠀⠀⠈⢿⣿⣿⠋⠡⣽⣿⣿⣿⠀⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⠤⢄⢸⣾⣿⣿⣿⣏⠀⠀⠀⠀⠀⠀⣰⣿⣿⣇⡀⠀⣠⣽⣿⣿⣴⣿⣿⣿⣿⣿⣗⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⡇⢀⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⢀⣴⣿⣿⣿⣿⣿⣾⣿⣿⣿⣿⣏⣸⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣧⢸⠁⠀⣿⣿⣿⣿⣿⣿⡇⠀⠀⠘⢿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣷⣶⠀⣀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⣀⣽⣿⣿⣿⣿⣿⣧⡀⠀⠀⣀⣀⣀⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⡿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠻⣿⣿⣿⣿⣿⡷⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠉⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠋⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⢰⣿⣿⣿⣿⣿⡇⠀⡟⠋⠁⠈⠉⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣶⣶⣶⣶⣶⣴⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣘⣿⣿⣿⣿⣿⠃⢠⠇⠀⠀⠀⣀⣈⣿⣿⣿⣿⠻⠛⠟⠟⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠷⠛⠀⠀⠀⠀⠸⢿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⣺⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣍⠙⠛⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠿⠃⠟⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣤⣤⣤⣄⡀⠀⠈⣿⣿⣿⠟⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢻⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣼⣿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⢸⣿⣿⡇⢺⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠸⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣟⡻⠿⣿⣿⣿⣅⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣿⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣭⣭⣽⣿⣿⡀⠀⠀⠈⠛⣿⣿⣿⣿⣿⡍⢿⣿⣦⣄⡀⠉⠉⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢸⣿⣿⣿ ⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡋⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣷⡨⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢸⣿⣿⣿ ⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⠀⠀⠙⡿⠈⣿⣿⣿⣾⣿⣿⣿⣿⠋⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡛⠛⠁⠀⠀⠀⠀⠀⠀⠀⢿⣻⣿⣿⣿⣽⣿⣷⠀⠀⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢠⣿⣿⣿⣿ ⠈⠨⠉⠉⢹⡉⣻⣏⣉⣉⣉⣟⣄⣀⣀⣀⡀⠀⠀⠀⠀⠐⠴⢷⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠛⠿⢏ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣤⣤⣤⣤⣠⣤⣤⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣤⣤⡤⡤⣤⣤⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠉⠀⠀⠈⠀⠁⠀⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇ ⠀⠀⠀⠀⡀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠿⢿⡷⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡆ ⠀⠀⠀⠘⠂⢦⣾⣿⣿⣿⣿⣿⣿⣿⣿⠏⠁⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⣀⣤⣴⣶⣿⣿⣿⣭⣘⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⡇ ⠀⠀⠀⣤⣤⣮⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⣴⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣿⡇ ⠀⠀⢾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⢘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣛⣿⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢨⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⣿⣿⣿⡟⠛⠉⠉⠉⠛⢻⣿⣿⣿⠟⠛⢿⣿⣿⣿⡏⠉⢿⣿⣿⣿⣿⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠋⠙⠻⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢰⣿⣿⡷⠀⠀⠀⠀⠀⢠⣼⣿⣿⠟⠀⠘⠿⣿⣿⣿⣇⠀⢸⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⡧⣄⣰⣿⣿⣿⣧⣄⡀⠀⠀⢀⣼⣿⣿⣿⣦⣄⣀⣴⣶⣿⣿⣿⣀⣼⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠐⣿⣿⣿⣿⣿⣿⡿⠀⣾⣿⣿⣿⣿⣿⣿⡇⠀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡅⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣷⢠⠋⢩⣿⣿⣿⣿⣿⣷⣄⠙⠛⠋⠉⢙⣛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣷⠀⣀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣄⣘⣿⣿⣿⣿⣿⣿⣿⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⣿⣾⣿⣿⣿⡾⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⢿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠛⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠉⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠙⠛⠋⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⢸⣿⣿⣿⣿⣏⣽⡆⠀⠀⠀⠙⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣶⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣼⣿⣿⣿⣿⣿⣿⠀⠀⠀⠰⣶⣦⣿⣿⣿⣿⣿⠿⠛⠛⣻⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠛⠂⠀⠀⠀⠉⢿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡛⠛⠃⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠿⠇⠟⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣤⣴⣦⣄⠀⠘⣿⣿⣿⡿⠓⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣿⡟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠂⠀⠀⢸⣿⣿⡇⢸⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠸⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣮⣭⡛⠻⠿⢿⣿⣭⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣿⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣿⡿⠁⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⣀⣀⡀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢾⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠯⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡯⠍⠁⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣾⣿⣿⣿ ⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⠀⠀⠀⠀⠀⠀⠀⠛⠇⠸⠿⠿⠛⠛⠛⠉⠁⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣸⣿⣿⣿⣿⣿⣿⣿⣿⡍⠀⠀⠀⠀⠀⢀⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢐⣿⣿⣿⣟ ⠈⠉⠉⠉⠀⠈⠉⠉⠉⠉⣁⣁⣈⣶⡀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢛⣻⣯ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣤⣤⣤⣤⣤⣄⣄⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣤⣤⣤⣤⢤⣤⣄⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠉⠀⠈⠁⠁⠉⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇ ⠀⠀⠀⠀⡀⠠⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⡆ ⠀⠀⠀⠐⠀⠠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠁⠉⠁⠀⠀⠉⠈⠀⠀⠀⠀⠀⠀⣀⣀⣻⣿⣿⣿⠟⢿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠨⣿⡇ ⠀⠀⠀⣠⣤⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⢠⣶⣾⣿⣿⣿⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⡇ ⠀⠀⢾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⢸⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣈⣉⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢨⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠘⣿⣿⣿⠿⠿⠟⠛⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠉⢿⣿⣿⣿⡯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠋⠉⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⢸⣿⣯⡥⠀⠀⠀⠀⠀⣀⣾⣿⣅⠀⠀⣨⣿⣿⣿⣿⡏⠀⢘⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⡿⢦⣼⣿⣿⣿⣀⡀⠀⠀⠀⢠⣿⣿⣿⣇⠀⠀⠀⣙⣻⣿⣿⣷⡄⣈⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠠⣿⣿⣿⣿⣿⣿⣿⣿⠀⣼⣿⣿⣿⣿⣿⣷⠀⢀⣴⣿⣿⣿⣿⣿⣿⣶⣿⣿⣿⣿⣿⣿⣿⡏⢿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣤⠃⢸⣿⣿⣿⣿⣿⡀⠾⢿⠿⠿⢻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣇⣾⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣷⣶⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣼⣿⣿⣿⣿⣿⣿⣦⣴⣶⣶⣷⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⣿⣾⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠛⣿⣿⣿⣿⣿⣿⣿⡿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠋⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠋⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣿⣿⣿⣿⣿⣯⡥⠀⠀⠀⠶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣶⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⣠⣄⣘⣿⣿⣿⣿⣿⡟⠓⠋⢟⠟⠋⢠⢤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡗⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠙⠋⠀⠀⠀⠀⠀⣻⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⠛⠛⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠿⠇⠟⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣤⣤⣄⣀⠀⠈⣿⣿⣿⠿⠛⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢻⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣾⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠙⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣭⣙⠛⠿⠿⠿⠋⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣾⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⡟⠋⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⡿⢷⠖⠋⠁⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢸⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠛⠻⠟⠛⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣸⣿⣿⣿ ⢹⣿⣿⣿⣿⣿⣿⣿⣿⠛⠛⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⢸⡽⠿⠛⠋⠛⡻⢻⣳⣔⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢠⣿⣿⣿⣟ ⠡⠈⠉⠉⠀⠈⠈⠈⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠴⠾⠿⠿⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⢻⣧ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣤⣤⣤⣤⣀⣀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⣀⣤⣤⣴⣤⠄⠀⠀⠀⠈⠉⠹⠻⢿⢿⣿⣿⣿⣿⣿⣿⣿⣯⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠃⠀⠀⠀⠀⠀⠀⠀⣠⣤⣤⣬⣽⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠇ ⠀⠀⠀⠀⡀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡄ ⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣙⣓⠀⠈⠛⠛⠀⠀⠀⠀⠀⠀⠀⠀⠠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇ ⠀⠀⠀⣠⣤⣬⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣀⣴⣾⣶⣶⣶⣶⣶⣤⣤⣤⣤⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⢏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡤⣿⡇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣈⣩⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢨⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣸⣿⣿⣿⣿⣿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠙⢿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣧⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠉⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⣿⣿⣭⠀⠀⠀⠀⠀⠀⠀⡉⠋⠉⠙⠛⢿⣿⣿⣿⣿⡇⠀⠈⡾⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⢳⣼⣿⣿⣉⠀⠀⠀⠀⢰⣿⣿⣿⠀⠀⠀⠀⠻⣿⣿⣿⣿⣧⠀⠀⣿⣿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠐⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣾⢿⣿⣿⣿⣧⠀⢀⣴⣿⣿⣿⣿⣷⣄⣀⣤⣶⣶⣿⣿⣿⣿⣶⡟⢿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⣼⣿⣿⣿⣿⣴⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⡇⣸⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣾⣶⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣾⣿⣿⣿⣿⣿⣏⣉⣀⣀⣍⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣸⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⣿⣾⣿⣿⣿⢾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠋⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣉⠉⠉⢉⣙⣿⣿⣿⣿⣿⣿⣿⣯⣿⣿⣿⡯⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣶⣶⣶⣶⣦⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠙⢻⣿⣿⣿⣿⣿⣿⠽⠻⠿⠛⠑⡖⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡤⠀⠀⢻⣶⣾⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠻⠟⠁⠀⠀⠈⠹⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣉⠙⠃⠀⠀⠀⠀⠀⠀⠰⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠿⠃⠟⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣤⣄⣀⠀⠀⠰⣿⣿⡿⠛⠑⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣦⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠉⠉⠙⢿⣿⣿⣿⣿⣿⣿⣿⣯⣍⡛⠻⠿⠛⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣾⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢛⠛⠁⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⡷⠿⠟⠓⠊⠁⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢸⣿⣿⣿ ⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⡁⠀⠀⠀⠀⠀⠀⠀⠁⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣾⣿⣿⣿ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⠏⠉⠁⡐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⡿ ⡴⢛⣩⣉⣀⠈⡩⠭⣛⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡀⠀⠀⠀⠸⠿⠿⠇⠺⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⠖⠉⠁⠀⠀⠀⠉⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠿⠿⠿⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢛⣻⣿ ⠀⠂⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⣶⣤⣴⣤⣤⣤⣤⣀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣠⣤⣤⣤⣤⣄⠄⠀⠸⠟⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠋⠁⠀⠀⠀⠀⠀⠀⠸⣿⣾⣿⣷⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢾⡇ ⠀⠀⠀⠀⠂⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⢩⣥⡀⠈⠉⠁⠀⠀⠀⠀⠀⠀⠀⣀⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣿⡇ ⠀⠀⠀⣤⣴⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣤⣾⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡔⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⣿⡇ ⠀⠀⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣈⣙⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⣿⣿⣿⠿⠿⠟⠛⠛⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠛⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⣿⣿⣶⠀⠀⠀⠀⢀⣀⣤⣄⠀⠀⠀⢈⣽⣿⣿⣿⣿⠁⠀⢸⣿⣿⣿⡶⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢦⣼⣿⣯⣀⡀⠀⠀⠀⣽⣿⣿⣿⡀⠀⠀⢀⡙⣿⣿⣿⣿⣧⠀⣸⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣾⣿⣿⣿⣿⣷⢀⣠⣾⣿⣿⣿⣿⣿⣶⣴⣿⣿⣿⣿⣿⣿⣿⣿⡉⢿⣿⣿⣷⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣴⠃⣼⣿⣿⣿⣿⣿⣿⡿⠿⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢿⡇⣸⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣾⣶⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣿⣿⣿⣿⣿⣿⣷⣶⣶⣼⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣸⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⣿⣾⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠯⠿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠋⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣵⡶⠂⠀⠰⣶⣭⣿⣿⣿⣿⣿⣿⣴⣾⣿⣿⣯⡟⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣶⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠀⠀⠀⣀⣀⣹⣿⣿⣿⣿⣿⣿⡿⣿⢿⡿⢻⢿⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠸⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⠇⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⡉⠛⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠿⠇⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣦⣤⣀⡀⠀⢿⣿⣿⠟⠛⠑⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣾⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠁⠀⠀⢸⣿⣿⡇⢺⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠸⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠉⠉⠛⢿⡿⣿⣿⣿⣿⣿⣿⣾⣭⠙⡟⠛⠉⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣾⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢟⠉⠀⠀⠀⠀⠀⠉⢻⣿⠿⡿⠿⠟⠻⠃⠉⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣸⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⢿⣿⣿⣿⣿⣿⣿⣿⡿⠉⠉⠐⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⡿ ⡼⣛⣭⣅⡀⢀⣌⢯⢿⣢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣴⡀⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢠⣿⣿⣿⣯ ⠚⠉⠀⠈⠀⠈⠉⠉⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠿⠿⠿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⣛⣿⣟ ⠀⠁⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣶⣤⣤⣤⣤⣤⣄⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣤⣤⣤⠤⠄⠀⠀⠐⢛⠟⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠁⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠃ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡇ ⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢉⣃⠀⠈⠉⠁⠀⠀⠀⠀⠀⢀⣀⣀⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇ ⠀⠀⠀⣠⣴⣯⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣔⡿⡇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠂⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣈⣑⣅ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⢾⣿⣿⠿⠿⠟⠛⠛⠛⠻⢿⣿⡿⢿⣿⣿⣿⣿⣿⣿⡿⠛⢿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠉⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣼⣿⣷⠂⠀⠀⠀⢀⣠⣤⣮⡀⠀⠀⠀⣼⣿⣿⣿⣿⡇⠀⠘⣿⡿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⢧⣠⣿⣿⣀⡀⠀⠀⠀⣸⣿⣿⣿⣇⠀⠀⠀⣈⣻⣿⣿⣿⣷⡆⣠⣿⣿⣾⣿⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠠⠄⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣷⡄⣠⣾⣿⣿⣿⣿⣿⣷⣶⣾⣿⣿⣿⣿⣿⣿⣿⡇⠹⣿⣿⣿⣶⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣇⡞⢩⣿⣿⣿⣿⣿⣿⣿⠟⠋⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠻⣿⣰⣿⣿⣿⣿⣶⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣷⣶⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣼⣿⣿⣿⣿⣿⣿⣶⣶⣶⣿⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⡿⣶⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠽⠿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣻⣿⡟⠋⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠙⠛⠋⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡶⠆⠀⠀⠲⣶⣿⣿⣿⣿⣿⣿⣧⣴⣾⣿⣽⣵⡘⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣴⣶⣶⣦⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⢠⣤⣈⣿⣿⣿⣿⣿⣿⣿⠿⠓⢟⠟⠛⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠉⠀⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣍⡙⠓⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠿⠇⠟⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣦⣤⣄⡀⠘⣿⣿⡿⠛⠋⠑⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢻⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠁⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠁⠉⠙⢿⡿⣿⣿⣿⣿⣿⣿⣶⠎⠹⠝⠏⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣿⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡍⠉⠀⠀⠀⠀⠀⠘⠿⣿⠿⠟⠛⠙⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢸⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢸⣿⣿⣿ ⠻⣿⣿⣿⣿⣿⣿⣿⡛⠿⠃⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣾⣿⣿⡏ ⢖⣭⠤⠤⣤⣀⡔⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣶⣿⡆⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢀⣿⣿⣿⣇ ⠉⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠸⢿⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢛⣻⣟ ⠀⠃⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢠⣤⣤⣴⣤⣤⣤⣤⣤⣤⣄⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣠⣤⣦⣤⣤⠄⠀⠀⠀⠿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡃ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠃⠀⠀⠀⠀⠀⠀⠰⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡇ ⠀⠀⠀⢀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣺⡇ ⠀⠀⠀⠀⢀⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣋⠉⠙⠛⠃⠀⠀⠀⠀⠀⠀⠀⠀⠾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇ ⠀⠀⠀⣤⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⢠⣾⣿⣶⣶⣶⣶⣶⣤⣤⣶⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⣿⡇ ⠀⠀⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣨⣛⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⢺⣿⣿⣿⣿⣿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠙⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣸⣿⣫⠀⠀⠀⠀⠀⠀⢀⡉⠉⠉⠉⠉⣻⣿⣿⣿⣿⡇⠀⠀⣿⣿⣿⡖⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢧⣠⣿⣿⠉⠀⠀⠀⠀⢸⣿⣿⣿⡀⠀⠀⠀⠛⢿⣿⣿⣿⣷⡄⢀⣿⣿⣿⡧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠠⠄⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣧⡄⢀⣴⣾⣿⣿⣿⣷⣤⣀⣴⣿⣿⣿⣿⣿⣿⣿⣏⠙⣿⣿⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡞⢸⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠻⣿⢰⣿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣼⣿⣿⣿⣿⣿⣿⣋⣠⣄⣭⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⣿⣿⣿⣿⣿⣿⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⣿⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠛⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠋⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣉⡁⠀⢀⣉⣛⣻⣿⣿⣿⣿⣿⣃⣼⣿⣿⣿⣟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣴⣶⣶⣦⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⡿⠿⣿⣿⣿⢿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⠆⠀⠹⣿⣶⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⠋⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣉⠙⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠿⠇⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣶⣶⣤⣄⣀⠀⢻⣿⣿⠟⠛⠙⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠉⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡯⠋⠈⠙⠿⡟⢿⣿⣿⣿⣿⣿⣷⠮⣝⡿⠟⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢹⣿⣧⣾⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠉⠀⠀⠀⠀⠀⠈⠿⣻⢟⡿⠿⠋⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢽⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣾⣿⣿⣿ ⢻⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠩⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣾⣿⣿⣿ ⢚⣭⠤⠤⠤⣤⣶⡙⠨⠑⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣶⣿⡇⠀⠀⠀⠸⠿⠿⠇⠺⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢠⣿⣿⣿⣟ ⠉⠀⠈⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠸⠿⠿⠿⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⣛⣿⣗ ⠁⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡧⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣴⣤⣤⣤⣤⣤⣄⣄⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣠⣤⣤⣤⣤⠄⠀⠀⠀⠿⠿⠿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⡏ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠁⠀⠀⠀⠀⠀⠀⠴⢾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡇ ⠀⠀⠀⠀⠀⢀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡇ ⠀⠀⠀⠐⠂⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣋⡉⠛⠛⠃⠀⠀⠀⠀⠀⠀⠀⠀⠾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇ ⠀⠀⠀⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⢠⣶⣾⣶⣶⣶⣶⣦⣤⣤⣶⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⣿⡇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠂⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣈⣛⣃ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣿⣿⣿⣿⣿⣿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⢻⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣿⣿⣯⠀⠀⠀⠀⠀⠀⢀⡉⠉⠉⠉⠙⣻⣿⣿⣿⣿⡇⠀⠀⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢧⣠⣿⣿⠁⠀⠀⠀⠀⣸⣿⣿⣿⠀⠀⠀⠀⠻⢿⣿⣿⣿⣷⡄⢀⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠠⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣧⡀⢀⣴⣿⣿⣿⣿⣧⣄⣀⣴⣿⣿⣿⣿⣿⣿⣿⣏⠙⣿⣿⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡞⢰⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢻⣿⢰⣿⣿⣿⡟⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣶⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣼⣿⣿⣿⣿⣿⣟⣋⣠⣨⣥⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣞⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠙⠛⠉⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣋⣉⠀⠀⢈⣉⣛⣻⣿⣿⣿⣿⣿⣇⣼⣿⣿⣿⡏⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣴⣶⣶⣦⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⣿⣿⡿⡟⠟⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⠆⠀⠹⣿⣶⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⠛⠃⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣉⠙⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠿⠇⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣤⣤⣀⠀⢻⣿⣿⠟⠛⠙⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢻⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠁⠀⠀⠀⢸⣿⣿⡇⢺⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠸⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠋⠈⠙⠻⣿⣿⣿⣿⣿⣿⣿⣷⠮⠙⠟⠋⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢹⣿⣧⣾⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠉⠀⠀⠀⠀⠀⠈⠯⣻⡿⠟⠋⠉⠉⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢽⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣼⣿⣿⣿ ⢻⣿⣿⣿⣿⣿⣿⣿⣻⢝⠓⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⢚⣭⠤⠤⠄⣴⣷⠍⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣾⣿⡇⠀⠀⠀⠸⠿⠿⠇⠺⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢀⣿⣿⣿⣗ ⠉⠀⠈⠀⠀⠀⠁⠁⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠸⠿⠿⠿⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⣛⣿⣟ ⠁⠂⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢠⣤⣤⣤⣤⣤⣤⣤⣤⣤⣄⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣤⣤⣤⠀⠀⠀⠀⠀⠿⠿⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡏ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠉⠉⠀⠀⠀⠀⠀⠾⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣶⡇ ⠀⠀⠀⠐⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣣⣈⠉⠛⠃⠀⠀⠀⠀⠀⠀⠀⢐⣛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⣿⡇ ⠀⠀⠀⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⢀⣴⣿⣿⣷⣿⣷⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⡇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠒⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣈⣙⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣗⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⢸⣿⣿⣿⡿⠿⠿⠿⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⠻⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠙⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⢾⣿⣥⠄⠀⠀⠀⠀⠀⣠⣄⠀⠀⠀⠀⣽⣿⣿⣿⣿⡇⠀⠀⣿⣿⣿⣿⡖⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⢧⣀⣿⣿⣁⡀⠀⠀⠀⢸⣿⣿⣿⡄⠀⠀⠀⣉⣻⣿⣿⣿⣿⡆⣀⣽⣿⣿⣿⡃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠄⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⣿⣿⣿⣿⣿⣄⣀⣴⣿⣿⣿⣿⣿⣦⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⠈⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣷⣸⠉⣿⣿⣿⣿⣿⣿⣿⠿⠟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⣿⣄⣿⣿⣿⣿⠟⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣶⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⣿⣿⣿⣿⣿⣿⣵⣴⣦⣷⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣗⣾⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠷⠽⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣿⣿⣿⣿⣿⡛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠙⠛⠋⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣥⡤⠀⠀⢤⣬⣽⣿⣿⣿⣿⣿⣯⣴⣿⣿⣿⣟⡝⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣶⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⢀⣀⣈⣻⣿⣿⣿⣿⣿⣿⣿⢿⡿⠿⢿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠛⠁⠀⠀⠀⢙⣿⣿⣿⣿⣿⣿⠁⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣉⠁⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠺⠿⠃⠟⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣾⣶⣶⣦⣤⣀⡐⢿⣿⣿⠟⠋⠙⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⣿⣿⣿⡿⠟⠉⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠃⠀⠙⠻⢿⣿⣿⣿⣿⣿⣿⣿⡦⠙⠒⠁⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣿⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠉⠀⠀⠀⠀⠀⠈⠛⠛⠟⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢸⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢾⣿⣿⣿ ⢻⣿⠿⠿⠿⠿⢿⢟⣻⠻⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⡀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣾⣿⣿⣿ ⣫⠴⠶⣲⣖⣚⣿⢏⡛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠀⢸⣿⣿⡇⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢀⣿⣿⣿⡟ ⠁⠀⠀⠉⠀⠀⠉⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠸⠿⠿⠿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢛⣻⣇ ⠁⠃⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣴⣶⣤⣤⣤⣤⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣤⣤⣤⠄⠀⠀⠀⠀⠛⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠀⠁⠀⠀⠀⠀⠾⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡁⠀⠀⠀⠀⠀⠀⠀⠀⢠⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢴⡇ ⠀⠀⠀⠀⠀⢢⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣣⡄⠈⠛⠃⠀⠀⠀⠀⠀⠀⠀⠀⣚⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣿⡇ ⠀⠀⠀⣠⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣹⣿⣾⣶⣿⣷⣶⣶⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣿⡇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡗⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣄⣟⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢸⣿⣿⣿⣿⠿⠿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⠛⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⢸⣿⣯⡄⠀⠀⠀⠀⠀⣠⣄⡀⠀⠀⠈⣹⣿⣿⣿⣿⣇⠀⠀⢿⣿⣿⢿⡔⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⠷⣀⣾⣿⣋⡀⠀⠀⠀⠀⣿⣿⣿⣇⠀⠀⠀⢈⢻⣿⣿⣿⣿⡦⢀⣼⣿⣾⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠄⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⣿⣿⣄⢀⣠⣾⣿⣿⣿⣿⣶⣤⣴⣿⣿⣿⣿⣿⣿⣿⣿⠈⣿⣿⣿⣾⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣸⠋⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⢿⣆⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣷⠀⣀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⣿⣿⣿⣿⣿⣿⣯⣤⣤⣴⣦⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣼⣿⣿⣿⣿⣿⣾⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⡿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣿⣿⣿⣿⡿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠉⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣭⡤⠀⠠⢤⣬⣽⣿⣿⣿⣿⣿⣿⣴⣾⣿⣿⡯⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣴⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⢀⣀⣈⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠂⠈⢻⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⠛⠁⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⠃⠀⢀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣉⠁⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⠏⠀⠀⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠺⠿⠃⠟⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣦⣤⣀⡀⢿⣿⣿⠟⠋⠙⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⡿⠟⠉⠀⠀⠀⠀⢸⣿⣿⡇⢺⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠉⠈⠙⠻⣿⣿⣿⣿⣿⣿⣿⡿⠦⠛⠛⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣿⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠉⠀⠀⠀⠀⠀⠈⠸⠩⠽⠛⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢸⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣾⣿⣿⣿ ⢿⣿⠿⠿⠿⣿⣿⣿⣟⡺⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣟ ⣩⠴⠒⣲⣤⣿⣿⠛⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠀⢸⣿⣿⡇⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢀⣿⣿⣿⡿ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠸⣿⡿⣿⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢛⣛⣇ ⠁⠁⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣴⣤⣤⣤⣤⣄⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣤⣤⣤⡤⠀⠀⠀⠀⠙⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠋⠀⠂⠀⠀⠀⠀⢴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡇ ⠀⠀⠀⠀⢀⡀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡤⡇ ⠀⠀⠀⠀⠀⢠⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣻⣍⡉⠛⠛⠂⠀⠀⠀⠀⠀⠀⠀⠠⠾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⡇ ⠀⠀⠀⣠⣤⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠈⣿⣷⣶⣶⣶⣶⣦⣤⣤⣤⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣿⡇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠂⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣀⣿⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣾⣿⣿⣿⣿⣿⣿⡿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠛⢻⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣿⣿⣋⠀⠀⠀⠀⠀⠀⣀⠉⠉⠉⠉⠙⣻⣿⣿⣿⣿⡇⠀⠘⣿⣿⣽⡖⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢧⣠⣿⣿⠋⠀⠀⠀⠀⢸⣿⣿⣿⠀⠀⠀⠀⠛⢿⣿⣿⣿⣷⡄⣀⣿⣿⣷⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣧⡀⢀⣠⣾⣿⣿⣿⣧⣄⣀⣴⣿⣿⣿⣿⣿⣿⣿⣏⠙⣿⣿⣿⡦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡏⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢻⣿⢠⣿⣿⣿⠃⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣾⣷⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣼⣿⣿⣿⣿⣿⣿⣋⣠⢈⣍⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⣿⣿⣿⣿⣿⣶⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⣿⣾⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠋⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣉⡀⠀⢈⣉⣛⣿⣿⣿⣿⣿⣿⣇⣾⣽⣿⡿⡗⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣴⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠀⠀⠀⠉⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣋⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⠆⠀⠻⣿⣿⣿⣿⣿⣿⣿⣿⠉⠀⠁⠁⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⠛⠃⠀⠀⠀⠘⢻⣿⣿⣿⣿⣿⡇⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣍⡙⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⡟⠀⠀⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠾⠿⠃⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣤⣀⡀⢸⣿⣿⠟⠛⠉⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⡿⠟⠉⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠉⠀⠉⠻⣿⣿⣿⣿⣿⣿⣿⣛⠦⠛⠓⠃⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣿⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠙⠛⠯⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢻⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣗⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣺⣿⣿⣿ ⣻⣿⡿⠿⠿⢿⣿⣿⣿⣶⡟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣫⡴⠖⠲⣤⢼⣿⠿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠀⢠⣿⣿⡇⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢠⣿⣿⣿⣿ ⠁⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠸⢿⡿⣿⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢛⣻⣿ ⠀⠃⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣦⣶⣤⣤⣤⣤⣤⣤⣄⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣤⣤⣤⣤⡀⠀⠀⠀⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⡿ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠉⠀⠀⠀⠀⠀⠀⣾⣷⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡄ ⠀⠀⠀⠀⠀⠠⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⡇ ⠀⠀⠀⠀⠀⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣻⣍⠉⠛⠛⠂⠀⠀⠀⠀⠀⠀⠀⠰⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡇ ⠀⠀⠀⣠⣤⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⢈⣽⣶⣶⣶⣶⣶⣦⣤⣴⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡝⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣿⡇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠂⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣄⣿⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣿⣿⣿⣿⣿⣿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠛⢻⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⣿⣿⣥⠀⠀⠀⠀⠀⠀⣀⡈⠉⠉⠉⢙⣿⣿⣿⣿⣿⡇⠀⠸⣿⣿⢿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢆⣰⣿⣟⠁⠀⠀⠀⠀⢸⣿⣿⣿⠀⠀⠀⠈⠛⢿⣿⣿⣿⣷⠀⣠⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⢸⣿⣿⣿⣿⣧⡀⢀⣴⣿⣿⣿⣿⣧⣤⣠⣾⣿⣿⣿⣿⣿⣿⣿⡏⢹⣿⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡏⢸⣿⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢻⣧⣸⣿⣿⣿⠃⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣼⣿⣿⣿⣿⣿⣿⣇⣤⢨⣥⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣿⣿⣿⣶⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⢿⣿⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣞⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⠟⠋⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠉⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣋⣁⡀⠀⢀⣍⣛⣻⣿⣿⣿⣿⣿⣧⣾⣿⣿⣿⡕⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣴⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠀⠀⠀⠉⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣻⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⠇⠀⠻⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⠛⠉⠀⠀⠀⠘⢻⣿⣿⣿⣿⣿⠇⠀⠀⡔⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣍⡙⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⡟⠀⠀⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠺⠿⠃⠟⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣤⣀⡀⠹⣿⣿⠟⠛⠉⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⡿⠟⠉⠀⠀⠀⠀⢸⣿⣿⡇⢺⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠉⠈⠉⠻⣿⣿⣿⣿⣿⣿⣿⣿⠖⠛⠒⠁⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣿⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣋⠈⠀⠀⠀⠀⠀⠈⠉⠛⠿⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢻⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⣠⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣾⣿⣿⣿ ⢻⣿⡿⠿⠿⢿⣿⣿⣿⡻⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣫⠴⠖⡶⠦⣼⡿⠸⠻⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠀⢰⣿⣿⡇⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢀⣿⣿⣿⣿ ⠁⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠀⠸⢿⡿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢛⣻⣿ ⠀⠁⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣦⣤⣤⣤⣤⣤⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣤⣤⣤⠤⠀⠀⠀⠀⠹⠿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡃ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠀⠀⠀⠀⠀⠀⠼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠆ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢐⡆ ⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣋⡀⠉⠛⠃⠀⠀⠀⠀⠀⠀⠀⠀⢚⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡗⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡇ ⠀⠀⠀⣠⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⢰⣿⣶⣶⣶⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢿⡇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠗⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣀⣀⣀⣀⣀⣀⣀⣄⣟⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠂⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢈⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢸⣿⣿⣿⣿⡿⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⢸⣿⣯⡄⠀⠀⠀⠀⠀⢀⣀⡈⠀⠀⠈⢹⣿⣿⣿⣿⣿⠀⠀⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣀⣾⣿⣋⡀⠀⠀⠀⠀⣿⣿⣿⣇⠀⠀⠀⠈⠛⣿⣿⣿⣿⡆⢀⣼⣿⣿⣿⡧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⣿⣿⣤⢀⣠⣾⣿⣿⣿⣿⣦⣤⣴⣿⣿⣿⣿⣿⣿⣿⣿⠈⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣸⠁⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢿⣆⣾⣿⣿⣿⠃⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣾⣷⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⣿⣿⣿⣿⣿⣿⣏⣤⣤⢴⣦⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣼⣿⣿⣿⣿⣿⣾⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⡿⣴⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠺⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠉⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣩⡤⠀⠠⢤⣬⣍⣿⣿⣿⣿⣿⣿⣴⣶⣿⣿⣽⡄⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣴⣶⣶⣶⣦⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⣀⠈⢻⣿⣿⣿⣿⣿⣿⢟⡿⣿⣟⢙⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠂⠈⠹⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠁⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠉⠁⠀⠀⠀⠈⣻⣿⣿⣿⣿⣿⠇⠀⢀⡔⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣉⠁⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣿⡏⠀⠀⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠺⠿⠃⠟⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣤⣀⡀⠹⣿⡿⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⡿⠛⠉⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠉⠀⠉⠻⣿⣿⣿⣿⣿⣿⣿⡟⠦⠓⠈⠃⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣿⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣏⠈⠀⠀⠀⠀⠀⠈⠉⠹⠯⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢻⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⣠⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣸⣿⣿⣿ ⢻⣿⠿⠿⠿⢿⣿⢟⣛⢛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣼⣿⣿⣿ ⣫⠴⠒⡒⡦⠬⡕⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠀⢸⣿⣿⡆⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⠀⣿⣿⣿⡏ ⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠸⣿⡿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⣻⣇ ⠀⠃⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣴⣦⣤⣤⣤⣤⣤⣤⣄⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣠⣤⣤⣤⡤⠀⠀⠀⠀⠫⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡃ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠀⠀⠀⠀⠀⠀⠀⣾⣿⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣿⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡇ ⠀⠀⠀⠠⠀⢢⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣛⡍⠉⠛⠛⠀⠀⠀⠀⠀⠀⠀⠀⠐⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡇ ⠀⠀⠀⣠⣴⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⢈⣿⣷⣶⣶⣶⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡍⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⡇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡗⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣀⣿⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⣿⣿⣿⣿⣿⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⢿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⣿⣿⣥⠀⠀⠀⠀⠀⠀⣀⡉⠉⠉⠉⢉⣿⣿⣿⣿⣿⠀⠀⢸⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣄⣸⣿⣟⡁⠀⠀⠀⠀⢸⣿⣿⣿⠀⠀⠀⠈⠛⢿⣿⣿⣿⣦⠀⣸⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⣼⣿⣿⣿⣿⣧⠀⢀⣴⣿⣿⣿⣿⣧⣤⣤⣾⣿⣿⣿⣿⣿⣿⣿⡍⢻⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⠏⣼⣿⣿⣿⣿⣾⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢿⣇⣸⣿⣿⣿⠃⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣽⣿⣿⣿⣿⣿⣿⣧⣤⢠⣤⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣸⣿⣿⣿⣿⣿⣷⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⢿⡿⣾⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠋⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣋⣡⠀⠀⢠⣭⣙⣻⣿⣿⣿⣿⣿⣥⣾⣿⣿⡏⡕⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣴⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⡿⡿⣿⡿⣹⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⠇⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠁⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠛⠉⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⠇⠀⠀⠰⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣍⠁⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⡟⠀⠀⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠺⠿⠃⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣤⣀⡀⠸⣿⣿⠟⠛⠙⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⡿⠟⠉⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡛⠁⠈⠙⠿⣿⣿⣿⣿⣿⣿⣿⣿⡦⠛⠋⠂⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣿⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢟⠉⠀⠀⠀⠀⠀⠉⠋⠻⠿⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢿⣿⣿⣿ ⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡧⡠⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣼⣿⣿⣿ ⢺⣿⡿⠿⠿⣿⣿⣿⣷⢿⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣋⡤⠄⠂⡠⢾⡿⡿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⢰⣿⣿⡇⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⠀⣿⣿⣿⡏ ⠁⠀⠀⠀⠀⠀⠉⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠀⠸⣿⡿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢛⣻⣇ ⠁⠃⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣦⣶⣤⣤⣤⣤⣤⣤⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣠⣤⣤⣤⡤⠀⠀⠀⠀⠋⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡃ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠟⠃⠑⠀⠀⠀⠀⠀⣾⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⢀⠀⡀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡇ ⠀⠀⠀⠰⠂⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣻⣉⡉⠛⠛⠂⠀⠀⠀⠀⠀⠀⠀⠀⠾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇ ⠀⠀⠀⣠⣤⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⢈⣿⣷⣶⣶⣶⣶⣦⣤⣤⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⡇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠘⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣄⣿⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣿⣿⣿⣿⣿⡿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠛⢿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠉⠉⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⣿⣿⣉⠀⠀⠀⠀⠀⠀⣀⡉⠉⠉⠉⠙⣻⣿⣿⣿⣿⠁⠀⠸⣿⣿⣿⡗⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢆⣰⣿⣟⠁⠀⠀⠀⠀⢸⣿⣿⣿⠀⠀⠀⠀⠛⢿⣿⣿⣿⣷⡀⣀⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⢸⣿⣿⣿⣿⣧⠀⢀⣰⣾⣿⣿⣿⣷⣄⣀⣴⣿⣿⣿⣿⣿⣿⣿⡏⢹⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡏⣸⣿⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢻⣷⣸⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣾⣷⠀⢀⣤⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣼⣿⣿⣿⣿⣿⣿⣏⣠⣅⣭⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣮⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⣿⣼⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠁⠈⠙⠛⠋⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣉⡀⠀⣀⣍⣙⣻⣿⣿⣿⣿⣿⣧⣬⣭⣿⣿⡧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣴⣶⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠀⠀⠀⠉⠻⣿⣿⣿⣿⣿⣿⡟⣿⣿⣿⣛⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⠆⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠈⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠛⠉⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⡇⠀⠀⠠⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣍⡉⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⡟⠀⠀⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠺⠿⠃⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣤⣀⡀⠘⣿⣿⠟⠛⠙⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⡿⠟⠋⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡆⢸⣿⣿⣿⣿⡞⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠈⠙⠿⣿⣿⣿⣿⣿⣿⣿⣿⣦⠛⠛⠈⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣿⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠁⠀⠀⠀⠀⠀⠉⢙⠙⠿⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣀⡤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⢸⣿⣿⠿⠿⣿⣿⢿⣿⡿⡏⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⣿ ⣋⡥⠤⣤⣤⢿⣿⣿⠿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⢰⣿⣿⡇⠀⠀⠀⠸⠿⠿⠇⠸⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⢀⣿⣿⣿⡟ ⠁⠀⠀⠀⠀⠀⠉⠈⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠸⣿⡿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢛⣻⣇ ⠛⠇⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣤⣤⣤⣤⣄⣀⣀⣀⣀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠐⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣤⣤⣤⡀⠀⠀⠀⠀⢿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣇⠀⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⠁⠉⠁⠀⠀⠀⠀⢾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⡀⠀⣀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣿⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣃⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇ ⠀⠀⠀⢠⣿⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣛⣻⣍⡉⠛⠛⠀⠀⠀⠀⠀⠀⠀⠀⠐⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⠀ ⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⢹⣿⣿⣷⣶⣶⣶⣶⣶⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡆ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣄⣀⣀⣀⣀⣀⣀⣀⣾⣇ ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⣿⣿⣿⣿⡿⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠉⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠋⠉⠙⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢐⣿⣟⣅⠀⠀⠀⠀⠀⠀⣀⡈⠁⠉⠉⢉⣿⣿⣿⣿⣿⠀⠀⢸⣿⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣄⣼⣿⡏⠀⠀⠀⠀⠀⣸⣿⣿⣿⠀⠀⠀⠈⠛⢿⣿⣿⣿⣦⢀⣸⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⣿⣿⣦⡀⢀⣴⣿⣿⣿⣿⣷⣤⣤⣾⣿⣿⣿⣿⣿⣿⣿⡍⢻⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⠋⣼⣿⣿⣿⣟⣷⣿⣿⣿⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢿⣇⡸⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣶⣶⠀⢀⣠⣄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⣽⣿⣿⣿⣿⣿⣯⣥⣤⣤⣦⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⠟⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠿⣿⣶⣿⣿⣿⡷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⡿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠈⠙⠛⠋⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣉⣡⠄⠀⢠⣬⣙⣻⣿⣿⣿⣿⣿⣤⠌⠙⠙⠁⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣴⣶⣶⣶⣦⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⢀⠈⢻⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠰⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠀⠙⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠉⠙⠁⠀⠀⠀⠈⢙⣿⣿⣿⣿⣿⠇⠀⢀⠞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣉⠁⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⡏⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠺⠿⠃⠟⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⢺⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣶⣤⣀⡀⠐⠿⠿⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⢿⣿⣿⣿⣿⣿ ⢺⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⡏ ⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⢸⣿⣿⡇⢾⣿⣿⡆⢸⣿⣿⣿⣿⡾⣿⣿⡆⢰⣿⣿⠃⠀⠀⢸⣿⣿⡆⣾⣿⣿⠀⣾⣿⣿⠀⠀⠀⠀⠘⣿⣿⣿⣷ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠁⠀⠙⢿⣿⣿⣿⣿⣿⣿⡿⠿⠔⠈⠉⠁⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⡏⠉⠁⢻⣿⣧⣿⣿⡏⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢿⣿⣿⣿ ⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠉⠛⠟⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣷⣶⠀⠈⣿⣿⣿⣿⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢸⣿⣿⣇ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⢻⣿⣿⡇⢸⣿⣿⡏⠉⠀⠀⢹⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡏⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⢸⣿⣿⣿ ⢈⣿⡿⠿⠿⢿⣿⣿⣿⣿⣇⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠀⠀⠀⠀⢸⣿⣿⡇⢸⣿⣿⡇⢸⣿⣿⣧⣤⡄⠀⢸⣿⣿⡇⠀⠀⠀⠀⢸⣿⣿⡇⣿⣿⣿⠀⣿⣿⣿⠀⠀⠀⠀⠀⣿⣿⣿⡇ ⣋⠤⠖⣶⣶⣼⡿⡟⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠀⢸⣿⣿⡇⠀⠀⠀⠸⠿⠿⠇⠻⠿⠿⠃⠸⠿⠿⠿⠿⠇⠀⠸⠿⠿⠇⠀⠀⠀⠀⠸⠿⠿⠇⠿⠿⠿⠀⠿⠿⠿⠀⠀⠀⠀⠀⣿⣿⣿⡇ ⠠⠀⠀⠈⠀⠈⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠸⠿⠯⠍⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢛⢛⣇ ䷩ 𝚕𝚒𝚗𝚎 775 ╒═══════════════════ 𝐀𝐑𝐓𝐈𝐂𝐋𝐄 ═════════════════════════════════════════════════╕ (ℹ) Images, hyperlinks and comments at http://techrights.org/2022/01/11/buzzwords-from-brussels/#comments Gemini version at gemini://gemini.techrights.org/2022/01/11/buzzwords-from-brussels/ ⠀⌧ █▇▆▅▄▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 01.11.22⠀▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▃▄▅▆▇█ ⌧ Gemini_version_available_♊︎ ✐ A_Soup_of_Buzzwords_From_Brussels_(the_European_Commission)⠀✐ Posted in Deception, Europe, Patents at 10:55 am by Dr. Roy Schestowitz Video_download_link | md5sum 8e48a186bb1cfab6d4a7ab99da1d0094 Say Hello to Buzzwords Creative Commons Attribution-No Derivative Works 4.0 http://techrights.org/videos/hey-hi-ec.webm 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇Stop Calling Everything AI, Machine-Learning Pioneer Says - IEEE Spectrum⦈ Summary: The European Commission (EC) is very much guilty of what the man on the right recently_bemoaned; European officials are shaping our policies based on misconceptions and nebulous terms, brought forth by multinational corporations, their media, and their lobbyists in the Brussels area; today we focus on a new consultation which sparingly uses the buzzwords “Hey Hi” and “IoT” (in almost every paragraph, on average) THIS morning we belatedly published this_relatively_short_post concerning a misguided or misframed consultation, which is probably well-meant (or well- meaning) but makes inherently flawed/false assumptions about the problem at hand (liability for harm and/or defects). The above video is a very short version of what would otherwise take several hours to cover (e.g. addressing pertinent questions). It’s repeatedly noted that the questions themselves are loaded, wrong, ill-advised, and potentially unhelpful. They compel us to believe that there’s this “magic” called “AI” and that it cannot be understood, governed, and nobody can be held accountable for computerised systems anymore. It’s a form of defeatism. Inducing a sense of helplessness. In recent years we pointed out that the gross overuse of the term “AI” (which we’ve spun as “Hey Hi” for the sake of ridicule) is being exploited by patent maximalists. They want patents to be granted to computers and for patents to also cover computer programs (algorithms) by framing those programs as “AI”. This is really bad (both things) as it defies common sense, not just patent law or its raison d’être. An associate of ours has studied the document and more or less agrees. “I’d say it’s more likely misframed,” he adds. “By this decade, more ought to know about what general-purpose computing is about, so there is not the excuse of it being novel. Same with machine learning, where the innovation was in the 1970s and 1980s, but the computing power didn’t catch up with the theory until the last decade or so.” If one visits the_page_in_question right now it says: “This survey has not yet been published or has already been unpublished in the meantime.” We’ve chosen not to comment until it’s officially over (“EU Survey – Adapting liability rules to the digital age and Artificial Intelligence”). As it states right there in the title, it’s all about “Artificial Intelligence” — a concept which is hardly defined or ill-defined. “The sad situation in the world nowadays is that the politicians neither know anything at all about ICT nor know anyone they can turn to who will give then an honest answer” the associate adds. “Therefore it is important that I at least go through the motions of providing the feedback they have requested from EU citizens.” The text below concerns Directive_85/374/EEC_on_liability_for defective_products (more in [1, 2] and it mentions “AI” about 100 times in total: 2000 character(s) maximum for each of the following: Question: What do you think is the appropriate approach for consumers to claim compensation when damage is caused by a defective product bought through an online marketplace and there is no EU-based producer or importer? Question: Please elaborate on your answers or specify other grounds of legal uncertainty regarding liability for damage caused by AI: Question: Please elaborate on your answers. You may reflect in particular on the recently proposed AI Act and on the complementary roles played by liability rules and the other safety-related strands of the Commission’s AI policy in ensuring trust in AI and promoting the uptake of AI-enabled products and services: Question: Please elaborate on your answers, in particular on whether your assessment is different for AI-enabled products than for AI- enabled services Question: Please elaborate on your answers, in particular on whether your assessment is different for AI-enabled products than for AI- enabled services, as well as on other impacts of possible legal fragmentation Question: Please elaborate on your answers and describe any other measures you may find appropriate: Question: Please elaborate on your answer, describe any other approaches regarding strict liability you may find appropriate and/or indicate to which specific AI-enabled products and services strict liability should apply: Question: Please elaborate on your answers, also taking into account the interplay with the other strands of the Commission’s AI policy (in particular the proposed AI Act). Please also describe any other measures you may find appropriate: Question: Please elaborate on your answer and specify if you would prefer a different approach, e.g. an approach differentiating by area of AI application: Question: Are there any other issues that should be considered? ----- English EN European Commission EU Survey Save a backup on your local computer (disable if you are using a public/shared computer) Adapting liability rules to the digital age and Artificial Intelligence Fields marked with * are mandatory. Introduction This public consultation aims to: confirm the relevance of the issues identified by the 2018 evaluation of the Product Liability Directive (e.g. how to apply the Directive to products in the digital and circular economy), and gather information and views on how to improve the Directive (Section I); collect information on the need and possible ways to address issues related specifically to damage caused by Artificial Intelligence systems, which concerns both the Product Liability Directive and national civil liability rules (Section II). You can respond to both sections or just to Section I. It is not possible to respond only to Section II. About you * Question: Language of my contribution * Question: I am giving my contribution as * Question: First name * Question: Surname * Question: Email (this won't be published) ______ * Question: Country of origin. Please add your country of origin, or that of your organisation. The Commission will publish all contributions to this public consultation. You can choose whether you would prefer to have your details published or to remain anonymous when your contribution is published. For the purpose of transparency, the type of respondent (for example, ‘business association, ‘consumer association’, ‘EU citizen’) country of origin, organisation name and size, and its transparency register number, are always published. Your e-mail address will never be published. Opt in to select the privacy option that best suits you. Privacy options default based on the type of respondent selected * Question: I agree with the personal data protection provisions Section I – Product Liability Directive This section of the consultation concerns Council Directive 85/374/ EEC on liability for defective products (“Product Liability Directive”), which applies to any product marketed in the European Economic Area (27 EU countries plus Iceland, Liechtenstein and Norway). See also Section II for more in-depth questions about the Directive and AI. According to the Directive, if a defective product causes damage to consumers, the producer must pay compensation. The injured party must prove the product was defective, as well as the causal link between the defect and the damage. But the injured party does not have to prove that the producer was at fault or negligent (‘strict liability’). In certain circumstances, producers are exempted from liability if they prove, e.g. that the product’s defect was not discoverable based on the best scientific knowledge at the time it was placed on the market. Injured parties can claim compensation for death, personal injury as well as property damage if the property is intended for private use and the damage exceeds EUR 500. The injured party has 3 years to seek compensation. In addition, the producer is freed from liability 10 years after the date the product was put into circulation. The Evaluation of the Directive in 2018 found that it was effective overall, but difficult to apply to products in the digital and circular economy because of its outdated concepts. The Commission’s 2020 Report on Safety and Liability for AI, Internet of things (IoT) and robotics also confirmed this. The Evaluation also found that consumers faced obstacles to making compensation claims, due to thresholds and time limits, and obstacles to getting compensation, especially for complex products, due to the burden of proof. * Question: How familiar are you with the Directive? Answer: I have detailed knowledge of the Directive, its objectives, rules and application Answer: I am aware of the Directive and some of its contents Answer: I am not familiar with the Directive Answer: No opinion Adapting the Directive to the digital age Question: The Directive holds importers strictly liable for damage caused by defective products when the producer is based outside the EU. Nowadays online marketplaces enable consumers to buy products from outside the EU without there being an importer. Online marketplaces intermediate the sale of products between traders, including those established outside the EU, and consumers. Typically, they are not in contact with the products they intermediate and they frequently intermediate trade between many sellers and consumers. Under the current rules, online marketplaces are covered by a conditional liability exemption (Article 14 of the e-Commerce Directive). The new proposal for a Digital Services Act includes obligations for online marketplaces to tackle illegal products online, e.g. gathering information on the identity of traders using their services. Moreover, the new proposal for a General Product Safety Regulation includes provisions for online marketplaces to tackle the sale of dangerous products online. Do you agree or disagree with the following statements? Strongly agree Agree Neutral Disagree Strongly disagree No opinion The proposals for a Digital Services Act and General Product Safety Regulation are sufficient to ensure consumer protection as regards products bought through online marketplaces where there is no EU- based producer or importer. The Product Liability Directive needs to be adapted to ensure consumer protection if damage is caused by defective products bought through online marketplaces where there is no EU-based producer or importer. Question: What do you think is the appropriate approach for consumers to claim compensation when damage is caused by a defective product bought through an online marketplace and there is no EU-based producer or importer? (2000 character(s) maximum) 0 out of 2000 characters used. Question: Digital technologies may bring with them new risks and new kinds of damage. Regarding risks, it is not always clear whether cybersecurity vulnerabilities can be considered a defect under the Directive, particularly as cybersecurity risks evolve throughout a product’s lifetime. Regarding damage, the Directive harmonises the rights of consumers to claim compensation for physical injury and property damage, although it lets each Member State decide itself whether to compensate for non-material damage (e.g. privacy infringements, psychological harm). National rules on non-material damage differ widely. At EU level both material and non-material damage can be compensated under the General Data Protection Regulation (GDPR) when a data controller or processor infringes the GDPR, and the Environmental Liability Directive provides for the liability of companies for environmental damage. Do you agree or disagree with the following statements? Strongly agree Agree Neutral Disagree Strongly disagree No opinion Producers should potentially be held strictly liable for damages caused as a result of failure to provide necessary security updates for smart products The Directive should harmonise the right of consumers to claim compensation from producers who are not simultaneously data controllers or processors, for privacy or data protection infringements (e.g. a leak of personal data caused by a defect) The Directive should harmonise the right of consumers to claim compensation for damage to, or destruction of, data (e.g. data being wiped from a hard drive even if there is no tangible damage) The Directive should harmonise the right of consumers to claim compensation for psychological harm (e.g. abusive robot in a care setting, home-schooling robot) Some products, whether digital or not, could also cause environmental damage. The Directive should allow consumers to claim compensation for environmental damage (e.g. caused by chemical products) Coverage of other types of harm Adapting the Directive to the circular economy Question The Directive addresses defects present at the moment a product is placed on the market. However, changes to products after they are placed on the market are increasingly common, e.g. in the context of circular economy business models. The Evaluation of the Directive found that it was not always clear who should be strictly liable when repaired, refurbished or remanufactured products were defective and caused damage. It is worth noting here that the Directive concerns the defectiveness of products and not the defectiveness of services. So, a third-party repair that was poorly carried out would not lead to the repairer being held liable under the Directive, although remedies may be available under national law. Do you agree or disagree with the following statements? Strongly agree Agree Neutral Disagree Strongly disagree No opinion Companies that remanufacture a product (e.g. restoring vehicle components to original as-new condition) and place it back on the market should be strictly liable for defects causing damage Companies that refurbish a product (e.g. restoring functionality of a used smartphone) and place it back on the market should be strictly liable for defects causing damage The manufacturer of a defective spare part added to a product (e.g. to a washing machine) during a repair should be strictly liable for damage caused by that spare part Policy approach and impacts of adapting the Directive to the digital and circular economy Reducing obstacles to getting compensation Question: The Evaluation of the Directive found that in some cases consumers face significant difficulties in getting compensation for damage caused by defective products. In particular it found that difficulties in proving the defectiveness of a product and proving that the product caused the damage accounted for 53% of rejected compensation claims. In particular, the technical complexity of certain products (e.g. pharmaceuticals and emerging digital technologies) could make it especially difficult and costly for consumers to actually prove they were defective and that they caused the damage. To what extent do you think that the following types of product present difficulties in terms of proving defectiveness and causality in the event of damage? (See additional burden of proof question concerning AI in Section II) To a very large extent To a large extent To a moderate extent To a small extent Not at all Don't know/no answer All products Technically complex products Pharmaceuticals AI-enabled products IoT (Internet of Things) products Question: Other types of product (please specify): (50 character(s) maximum) 0 out of 50 characters used. Reducing obstacles to making claims Question: The Evaluation of the Directive found that in some cases consumers faced or could face significant difficulties in making compensation claims for damage caused by defective products. The current rules allow consumers to claim compensation for personal injury or property damage. Time limits apply to all compensation claims and several other limitations apply to compensation for property damage. To what extent do the following features of the Directive create obstacles to consumers making compensation claims? To a very large extent To a large extent To a moderate extent To a small extent Not at all Don't know/no answer Producers are released from liability for death/personal injury 10 years after placing the product on the market Producers are released from liability for property damage 10 years after placing the product on the market Consumers have to start legal proceedings within 3 years of becoming aware of the damage Consumers can claim compensation only for damage to property worth more than EUR 500 Consumers can claim compensation only for damage to property intended and used for private purposes Policy approach and impacts of reducing obstacles to getting compensation and making claims End of Section I on Product Liability Directive *Question In Section II of this consultation the problems linked to certain types of Artificial Intelligence – which make it difficult to identify the potentially liable person, to prove that person’s fault or to prove the defect of a product and the causal link with the damage – are explored further. Would you like to continue with Section II on Artificial Intelligence? Answer Continue with Section II on Artificial Intelligence Answer Close the questionnaire Section II - Liability for AI Introduction As a crucial enabling technology, AI can drive both products and services. AI systems can either be provided with a physical product (e.g. an autonomous delivery vehicle) or placed separately on the market. To facilitate trust in and the roll-out of AI technologies, the Commission is taking a staged approach. First, on 21 April 2021, it proposed harmonised rules for development, placing on the market and use of certain AI systems (AI Act). The AI Act contains obligations on providers and users of AI systems, e.g. on human oversight, transparency and information. In addition, the recent proposal for a Regulation on Machinery Products (published together with the AI act) also covers new risks originating from emerging technologies, including the integration of AI systems into machinery. However, safety legislation minimises but cannot fully exclude accidents. The liability frameworks come into play where accidents happen and damage is caused. Therefore, as a next step to complement the recent initiatives aimed at improving the safety of products when they are placed on the EU market, the Commission is considering a revision of the liability framework. In the White Paper on AI and the accompanying 2020 Report on Safety and Liability, the Commission identified potential problems with liability rules, stemming from the specific properties of certain AI systems. These properties could make it difficult for injured parties to get compensation based on the Product Liability Directive or national fault-based rules. This is because in certain situations, the lack of transparency (opacity) and explainability (complexity) as well as the high degree of autonomy of some AI systems could make it difficult for injured parties to prove a product is defective or to prove fault, and to prove the causal link with the damage. It may also be uncertain whether and to what extent national strict liability regimes (e.g. for dangerous activities) will apply to the use of AI-enabled products or services. National laws may change, and courts may adapt their interpretation of the law, to address these potential challenges. Regarding national liability rules and their application to AI, these potential problems have been further explored in this recent study. With this staged approach to AI, the Commission aims to provide the legal certainty necessary for investment and, specifically with this initiative, to ensure that victims of damage caused by AI-enabled products and services have a similar level of protection to victims of technologies that operate without AI. Therefore, this part of the consultation is looking at all three pillars of the existing liability framework. The Product Liability Directive, for consumer claims against producers of defective products. The injured party has to prove the product was defective and the causal link between that defect and the damage. As regards the Directive, the proposed questions build on the first section of the consultation. National fault-based liability rules: The injured party has to prove the defendant’s fault (negligence or intent to harm) and a causal link between that fault and the damage. National strict liability regimes set by each Member State for technologies or activities considered to pose an increased risk to society (e.g. cars or construction activities). Strict liability means that the relevant risk is assigned to someone irrespective of fault. This is usually justified by the fact that the strictly liable individual benefits from exposing the public to a risk. In addition to this framework, the General Data Protection Regulation (GDPR) gives anyone who has suffered material or non-material damage due to an infringement of the Regulation the right to receive compensation from the controller or processor. Problems – general Question: Do you agree or disagree with the following statements? Strongly agree Agree Neutral Disagree Strongly disagree No opinion There is uncertainty as to how the Product Liability Directive (i.e. liability for defective products) applies to damage caused by AI There is uncertainty as to whether and how liability rules under national law apply to damage caused by AI When AI operates with a high degree of autonomy, it could be difficult to link the damage it caused to the actions or omissions of a human actor In the case of AI that lacks transparency (opacity) and explainability (complexity), it could be difficult for injured parties to prove that the conditions of liability (such as fault, a defect, or causation) are fulfilled Because of AI’s specific characteristics, victims of damage caused by AI may in certain cases be less protected than victims of damage that didn’t involve AI It is uncertain how national courts will address possible difficulties of proof and liability gaps in relation to AI Question: Please elaborate on your answers or specify other grounds of legal uncertainty regarding liability for damage caused by AI: (2000 character(s) maximum) 0 out of 2000 characters used. Question: Do you agree or disagree with the following statements? Strongly agree Agree Neutral Disagree Strongly disagree No opinion The lack of adaptation of the current liability framework to AI may negatively affect trust in AI The lack of adaptation of the current liability framework to AI may negatively affect the uptake of AI-enabled products and services Question: Please elaborate on your answers. You may reflect in particular on the recently proposed AI Act and on the complementary roles played by liability rules and the other safety-related strands of the Commission’s AI policy in ensuring trust in AI and promoting the uptake of AI-enabled products and services: (2000 character(s) maximum) 0 out of 2000 characters used. Question: If the current liability framework is not adapted, to what extent do you expect the following problems to occur in relation to the production, distribution or use of AI-enabled products or services, now or in the foreseeable future? This question is primarily aimed at businesses and business associations. To a very large extent To a large extent To a moderate extent To a small extent Not at all Don't know/no answer Companies will face additional costs (e.g. legal information costs, increased insurance costs) Companies may defer or abandon certain investments in AI technologies Companies may refrain from using AI when automating certain processes Companies may limit their cross-border activities related to the production, distribution or use of AI-enabled products or services Higher prices of AI-enabled products and services Insurers will increase risk-premiums due to a lack of predictability of liability exposures It will not be possible to insure some products/services Negative impact on the roll-out of AI technologies in the internal market Question: Please elaborate on your answers, in particular on whether your assessment is different for AI-enabled products than for AI- enabled services (2000 character(s) maximum) 0 out of 2000 characters used. Question: With the growing number of AI-enabled products and services on the market, Member States may adapt their respective liability regimes to the specific challenges of AI, which could lead to increasing differences between national liability rules. The Product Liability Directive could also be interpreted in different ways by national courts for damage caused by AI. If Member States adapt liability rules for AI in a divergent way, or national courts follow diverging interpretations of existing liability rules, to what extent do you expect this to cause the following problems in the EU? This question is primarily aimed at businesses and business associations. To a very large extent To a large extent To a moderate extent To a small extent Not at all Don't know/no answer Additional costs for companies (e.g. legal information costs, increased insurance costs) when producing, distributing or using AI-equipped products or services Need for technological adaptations when providing AI-based cross- border services Need to adapt AI technologies, distribution models (e.g. sale versus service provision) and cost management models in light of diverging national liability rules Companies may limit their cross-border activities related to the production, distribution or use of AI-enabled products or services Higher prices of AI-enabled products and services Insurers will increase premiums due to more divergent liability exposures Negative impact on the roll-out of AI technologies Question: Please elaborate on your answers, in particular on whether your assessment is different for AI-enabled products than for AI- enabled services, as well as on other impacts of possible legal fragmentation (2000 character(s) maximum) 0 out of 2000 characters used. Policy options Question: Due to their specific characteristics, in particular their lack of transparency and explainability (‘black box effect’) and their high degree of autonomy, certain types of AI systems could challenge existing liability rules. The Commission is considering the policy measures, described in the following questions, to ensure that victims of damage caused by these specific types of AI systems are not left with less protection than victims of damage caused by technologies that operate without AI. Such measures would be based on existing approaches in national liability regimes (e.g. alleviating the burden of proof for the injured party or strict liability for the producer). They would also complement the Commission’s other policy initiatives to ensure the safety of AI, such as the recently proposed AI Act, and provide a safety net in the event that an AI system causes damage. Please note that the approaches to adapting the liability framework presented below relate only to civil liability, not to state or criminal liability. The proposed approaches focus on measures to ease the victim’s burden of proof (see next question) as well as a possible targeted harmonisation of strict liability and insurance solutions (subsequent questions). They aim to help the victim recover damage more easily. Do you agree or disagree with the following approaches regarding the burden of proof? The answer options are not mutually exclusive. Regarding the Product Liability Directive, the following approaches build on the general options in the first part of this questionnaire. Strongly agree Agree Neutral Disagree Strongly disagree No opinion The defendant (e.g. producer, user, service provider, operator) should be obliged to disclose necessary technical information (e.g. log data) to the injured party to enable the latter to prove the conditions of the claim If the defendant refuses to disclose the information referred to in the previous answer option, courts should infer that the conditions to be proven by that information are fulfilled Specifically for claims under the Product Liability Directive: if an AI-enabled product clearly malfunctioned (e.g. driverless vehicle swerving off the road despite no obstacles), courts should infer that it was defective and caused the damage If the provider of an AI system failed to comply with their safety or other legal obligations to prevent harm (e.g. those proposed under the proposed AI Act), courts should infer that the damage was caused due to that person’s fault or that, for claims under the Product Liability Directive, the AI system was defective If the user of an AI system failed to comply with their safety or other legal obligations to prevent harm (e.g. those proposed under the proposed AI Act), courts should infer that the damage was caused by that person’s fault If, in a given case, it is necessary to establish how a complex and/ or opaque AI system (i.e. an AI system with limited transparency and explainability) operates in order to substantiate a claim, the burden of proof should be shifted from the victim to the defendant in that respect Specifically for claims under the Product Liability Directive: if a product integrating an AI system that continuously learns and adapts while in operation causes damage, the producer should be liable irrespective of defectiveness; the victim should have to prove only that the product caused the damage Certain types of opaque or highly autonomous AI systems should be defined for which the burden of proof regarding fault and causation should always be on the person responsible for that AI system (reversal of burden of proof) EU action to ease the victim’s burden of proof is not necessary or justified Question: Please elaborate on your answers and describe any other measures you may find appropriate: (2000 character(s) maximum) 0 out of 2000 characters used. Question: Separately from the strict liability of producers under the Product Liability Directive, national laws provide for a wide range of different strict liability schemes for the owner/user/operator. Strict liability means that a certain risk of damage is assigned to a person irrespective of fault. A possible policy option at EU level could be to harmonise strict liability (full or minimum), separately from the Product Liability Directive, for damage caused by the operation of certain AI-enabled products or the provision of certain AI-enabled services. This could notably be considered in cases where the use of AI (e.g. in autonomous vehicles and autonomous drones) exposes the public to the risk of damage to important values like life, health and property. Where strict liability rules already exist in a Member State, e.g. for cars, the EU harmonisation would not lead to an additional strict liability regime. Do you agree or disagree with the following approaches regarding liability for operating AI-enabled products and providing AI-enabled services creating a serious injury risk (e.g. life, health, property) for the public? Strongly agree Agree Neutral Disagree Strongly disagree No opinion Full harmonisation of strict liability for operating AI-enabled products and providing AI-enabled services, limited to cases where these activities pose serious injury risks to the public Harmonisation of strict liability for the cases mentioned in the previous option, but allowing Member States to maintain broader and/ or more far-reaching national strict liability schemes applicable to other AI-enabled products and services Strict liability for operating AI-enabled products and providing of AI-enabled services should not be harmonised at EU level Question: Please elaborate on your answer, describe any other approaches regarding strict liability you may find appropriate and/or indicate to which specific AI-enabled products and services strict liability should apply: (2000 character(s) maximum) 0 out of 2000 characters used. Question: The availability, uptake and economic effects of insurance policies covering liability for damage are important factors in assessing the impacts of the measures described in the previous questions. Therefore, this question explores the role of (voluntary or mandatory) insurance solutions in general terms. The subsequent questions concern possible EU policy measures regarding insurance. To what extent do you agree with the following statements? Strongly agree Agree Neutral Disagree Strongly disagree No opinion Parties subject to possible harmonised strict liability rules as described in the previous question would likely be covered by (voluntary or mandatory) insurance In cases where possible facilitations of the burden of proof would apply (as described in the question on approaches to burden of proof), the potentially liable party would likely be covered by (voluntary or mandatory) liability insurance Insurance solutions (be they voluntary or mandatory) could limit the costs of potential damage for the liable person to the insurance premium Insurance solutions (be they voluntary or mandatory) could ensure that the injured person receives compensation Question: Please elaborate on your answers: (2000 character(s) maximum) 0 out of 2000 characters used. Question: Under many national strict liability schemes, the person liable is required by law to take out insurance. A similar solution could be chosen at EU level for damage caused by certain types of AI systems that pose serious injury risks (e.g. life, health, property) to the public. Possible EU rules would ensure that existing insurance requirements are not duplicated: if the operation of a certain product, such as motor vehicles or drones, is already subject to mandatory insurance coverage, using AI in such a product or service would not entail additional insurance requirements. Do you agree or disagree with the following approach on insurance for the use of AI systems that poses a serious risk of injury to the public? Strongly agree Agree Neutral Disagree Strongly disagree No opinion A harmonised insurance obligation should be laid down at EU level, where it does not exist yet, for using AI products and providing AI-based services that pose a serious injury risk (e.g. life, health, property) to the public Question: Taking into account the description of various options presented in the previous questions, please rank the following options from 1 (like best) to 8 (like least) 1 2 3 4 5 6 7 8 Option 1: (Aside from measures to ease the burden of proof considered in Section I) Amending the Product Liability Directive to ease the burden on victims when proving an AI-enabled product was defective and caused the damage Option 2: Targeted harmonisation of national rules on proof, e.g. by reversing the burden of proof under certain conditions, to ensure that it is not excessively difficult for victims to prove, as appropriate, fault and/or causation for damage caused by certain AI-enabled products and services Option 3: Harmonisation of liability irrespective of fault (‘strict liability’) for operators of AI technologies that pose a serious injury risk (e.g. life, health, property) to the public Option 4: option 3 + mandatory liability insurance for operators subject to strict liability Option 5: option 1 + option 2 Option 6: option 1 + option 2 + option 3 Option 7: option 1 + option 2 + option 4 Option 8: No EU action. Outside the existing scope of the Product Liability Directive, each Member State would be free to adapt liability rules for AI if and as they see fit Question: Please elaborate on your answers, also taking into account the interplay with the other strands of the Commission’s AI policy (in particular the proposed AI Act). Please also describe any other measures you may find appropriate: (2000 character(s) maximum) 0 out of 2000 characters used. Types of compensable harm and admissibility of contractual liability waivers Question: Aside from bodily injury or damage to physical objects, the use of technology can cause other types of damage, such as immaterial harm (e.g. pain and suffering). This is true not only for AI but also for other potential sources of harm. Coverage for such damage differs widely in Member States. Do you agree or disagree with harmonising compensation for the following types of harm (aside from bodily injury and property damage), specifically for cases where using AI leads to harm? Please note that this question does not concern the Product Liability Directive – a question on the types of harm for which consumers can claim compensation under this Directive can be found in Section I. The answer options are not mutually exclusive. Strongly agree Agree Neutral Disagree Strongly disagree No opinion Pure economic loss (e.g. loss of profit) Loss of or damage to data (not covered by the GDPR) resulting in a verifiable economic loss Immaterial harm like pain and suffering, reputational damage or psychological harm Loss of or damage to data (not covered by the GDPR) not resulting in a verifiable economic loss All the types of harm mentioned above Question: Please specify any other types of harm: (500 character(s) maximum) 0 out of 500 characters used. Question: Sometimes the person who has suffered damage has a contract with the person responsible. That contract may exclude or limit the right to compensation. Some Member States consider it necessary to prohibit or restrict all or certain such clauses. The Product Liability Directive also does not let producers limit or exclude their liability towards the injured person by contract. If the liability of operators/users for damage caused by AI is harmonised at EU level, do you agree or disagree with the following approaches regarding contractual clauses excluding or limiting in advance the victim’s right to compensation? Strongly agree Agree Neutral Disagree Strongly disagree No opinion The admissibility of contractual liability waivers should not be addressed at all Such contractual clauses should be prohibited vis-à-vis consumers Such contractual clauses should be prohibited vis-à-vis consumers and between businesses The contractual exclusion or limitation of liability should be prohibited only for certain types of harm (e.g. to life, body or health) and/or for harm arising from gross negligence or intent Question: Please elaborate on your answer and specify if you would prefer a different approach, e.g. an approach differentiating by area of AI application: (2000 character(s) maximum) 0 out of 2000 characters used. Additional information Question: Are there any other issues that should be considered? (3000 character(s) maximum) 0 out of 3000 characters used. Question: You can upload relevant quantitative data, reports/studies and position papers to support your views here: Only files of the type pdf,txt,doc,docx,odt,rtf are allowed Question: Do you agree to the Commission contacting you for a possible follow-up? Answer Yes Answer No If you're human, leave this field blank Contact Mark.BEAMISH@ec.europa.eu Download PDF version Report abuse EUSurvey is supported by the European Commission's ISA² programme, which promotes interoperability solutions for European public administrations. Whatever the European Commission comes up with at the end, we keep our hopes low in light of unbridled_cronyism. █ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡤⢤⡤⢤⣤⣤⣤ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠯⠼⠿⠶⠴⠷⠼ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀ ⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⣿ ⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⣿ ⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿ ⠀⠀⡄⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠉⠉⠙⠻⢿⣿⣿⣿⣿⣿⣿⣿⣟⣭⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠇⢹⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣏⣾⣿⡟⣴⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⡹⣿⣿⣿⣿ ⠀⠀⡳⣘⢻⡎⣝⢿⡸⡿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⡟⠁⠀⠀⡔⣺⣿⣿⣷⣤⣤⡀⠀⠀⠻⣿⣿⣿⣸⣿⣿⢓⣛⢛⡸⠼⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣧⢻⣿⣿⣿ ⠀⠀⢁⠃⣿⡇⠙⣸⢷⠱⣿⡟⣻⡇⢻⣿⣿⣿⣿⣿⣿⣷⡝⣏⡟⠀⠀⠀⠘⣷⣿⣿⣿⣿⣿⣟⣏⠀⠀⠀⢻⣿⣿⢹⣿⡟⣾⣿⡞⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣿⣿⣷⣷⡹⣿⡸⣿⣿⣿ ⠀⠀⠀⠀⢙⡁⠚⣟⠸⣴⢹⣕⣛⡇⣃⢿⣿⣿⣿⣿⣿⣿⣿⣈⠇⠀⠀⠀⠘⢸⣟⣿⣿⣷⣷⣿⣾⡦⠀⠀⠈⠿⠿⢸⣿⡇⣿⣿⡇⣿⣷⢻⣿⣿⣿⣿⣿⡿⣫⣭⣿⣿⣿⣿⣿⣿⢣⡎⢹⣿⣿⣿⣧⢻⡇⣿⣿⣿ ⠀⠀⠀⠀⠀⠉⠀⠙⣧⠻⣿⣹⣿⣿⣿⣶⡻⣻⣿⣿⣻⢿⣿⣿⣆⠀⠀⢀⠠⠈⠁⠉⠉⠉⠻⠽⠉⠁⠀⠀⠀⠀⠀⠀⠟⠃⣿⣿⡇⣿⣿⢸⣿⣿⣿⣿⣿⢱⣿⣿⣿⠿⠿⣿⣿⡏⣿⠹⡞⣿⢸⢿⣿⡞⣿⢸⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⠀⠿⠳⡿⠿⣿⣿⣿⣿⣷⣿⣿⣿⣯⣾⣿⣿⣇⠀⠀⠸⠷⠀⠀⠀⠀⣀⢰⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣾⣿⢹⣿⡎⣿⣿⣿⣿⣿⣧⣝⣛⣓⣛⣫⣾⣿⡿⣏⣾⣶⣰⢸⢳⣿⡇⣿⡞⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣷⢀⠀⠀⢮⣷⣿⣶⠿⠛⣯⡧⠀⠠⢪⠀⠀⠀⠀⠀⠀⠀⠀⠘⠟⡿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣜⣿⡇⣿⡇⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠉⢹⣿⡟⣸⣿⣿⣿⣿⣿⣿⣿⣿⡦⣀⠀⠈⠹⠟⠀⠀⠉⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢈⣍⣻⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢇⣿⢃⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠘⠈⠁⣾⣿⣿⣿⣿⣿⣿⣿⣿⣷⠡⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣿⢿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣯⣾⡟⣸⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣤⡀⠨⣺⣿⠿⢻⣿⣿⣿⢿⡿⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣟⣱⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠀⠀⠀⠤⣼⣿⣿⠟⠃⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠹⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠃⠸⠯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢹⣿⣿⣿⣿⣿⣿⣿⣿ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣉⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⣿ ䷩ 𝚕𝚒𝚗𝚎 1956 ╒═══════════════════ 𝐀𝐑𝐓𝐈𝐂𝐋𝐄 ═════════════════════════════════════════════════╕ (ℹ) Images, hyperlinks and comments at http://techrights.org/2022/01/11/dedrm-free-software/#comments Gemini version at gemini://gemini.techrights.org/2022/01/11/dedrm-free-software/ ⠀⌧ █▇▆▅▄▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 01.11.22⠀▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▃▄▅▆▇█ ⌧ Gemini_version_available_♊︎ ✐ Microsoft_GitHub,_DRM_Enforcer,_Bans_Free_Software⠀✐ Posted in DRM, Free/Libre_Software, Microsoft at 7:08 am by Dr. Roy Schestowitz Reproduced from Mobileread, as can be seen here: Initially, I didn’t want create an account on this site and keep all discussion on GitHub (the fewer accounts one has, the easier it is to stay anonymous …), but I guess with the GitHub being gone, it’s about time to answer some of the questions here … Maybe GitHub hasn’t been the best choice for a platform, but I didn’t expect there to be DMCA claims when there have been none over the recent years in Apprentice Harper’s repository. I guess, in the long term, I should move to another platform. I received the first message from Github about the DMCA claim on January 4th in the late evening, with a time line of 24h to remove the “offending” content. Of course that deadline is rather short – I am obviously not using my “main” mail address for stuff like this, so I didn’t check this account every single day, and only found out the repository was blocked (some time on January 6th) when I checked this forum thread and saw the discussion on January 7th. The GitHub FAQ states that when one misses the 1-day window to make requested changes, one can request an additional time of 1 day to perform the changes. I requested that by mail on January 7th, but so far the GitHub support hasn’t gotten back to me yet. Right now, I see the same page that you all see – repo unavailable due to DMCA. They could have at least given the repo owner access to update the code, but they didn’t. Rather disturbing that they are allowed to block a repo after just one day of no response (they could have given me a notification on the Github page itself, in addition to the mail, then I would have seen it before the deadline was over …), and then don’t respond to the topic for multiple days, but maybe their support doesn’t work on weekends and they don’t consider stuff like this urgent now that the repo’s down and they did what they legally have to do … The goal is to hopefully get Github to restore the repository once they finally read my mail, then remove the offending code from the repository, and have the plugin no longer contain the offending LCP code on Github to comply with the DMCA request. The DMCA request mentions nothing about the difference between library books and bought books. The request states that the original repositories (apprentice harper and so on) are not part of the takedown – not because they have blocks for library books, but because they don’t support LCP at all. So I doubt adding a block for library books would have prevented this takedown (or, would be an acceptable solution to get the repository back). The guys behind LCP know how easy it is to edit Python code to remove such blocks, and I think with this plugin being the first public solution for LCP DRM removal, I guess they are more concerned with people knowing the algorithm, and they think that with a DMCA request for this repo they can remove that from the entire internet. I don’t want to piss off GitHub (and Readium?) even more by now creating a new account or repository. Even though it’s probably fine as far as the DMCA goes (if there’s no LCP code in the new repo), it certainly violates Github TOS to just make a new repo when there’s a pending takedown. So I’m going to wait for the support to respond, which they are supposed to according to their own FAQ. If they don’t, I guess the plugin moves to another platform. As for the other topics being discussed here in the last couple days: - Someone mentioned that based on the description of LCP in the takedown notice, this DRM doesn’t sound so bad – maybe it doesn’t, but there’s one thing they are purposefully omitting in that description, and one they either deliberately or accidentally explained wrong. They are claiming that LCP is oh-so-open and doesn’t lock the user into a proprietary environment. Yeah, LCP is not as proprietary as Adobe or Amazon, but it’s still proprietary. Yes, they have the source code available on their GitHub, but still require you to pay huge amounts for licenses if you want to use the code. A critical piece of source code for the project is missing on their Github, and you only get this code (with a very restrictive license) if you pay them. So, the code on the GitHub is useless, as if you forked it and built the code yourself, it wouldn’t work. And the other thing they omitted is the fact that there’s (almost) no reader support. They claim the DRM doesn’t hurt content accessibility, it lets users share content with friends, and so on. But that’s only true if you’re reading on a phone or computer, or if you have a very new eReader from particular vendors. If the codebase would have *really* been open-source (meaning, I take the source code, built it, and get a 1:1 100% identical binary to the one they give to users, without paying for a license), AND Readium had support on all eReaders, I doubt I would have deemed it necessary to add LCP support. The main reason I added this support was not to “crack” books and share them with the world, it was getting them to work on MY readers … - The latest release of the plugin (10.0.2) does not yet support QT 6 / Calibre 6, but the latest commit on master already does. I doubt there’s many people that have that downloaded, with the repo now gone. Though, even if GitHub decides to block the repo permanently and I don’t find any other useful hosting, the plugin only required very small changes in two or three places that became apparent when reading the error messages, so it should be easy for others to fix that, if needed. As noted in_Mastodon: “RIAA showed that it was acceptable to use GitHub’s (legally mandated) DMCA process for DMCA section 1201… Any tool like this should probably self-host their code repository at this point… Can we please kill these anticircumvention laws? Maybe then we won’t need tools like DeDRM?” Related: * Microsoft_as_a_Censorship_Machine_Working_to_Undermine_Free_Software_and Code_Sharing_(Also_Sharing_in_General) * Another_Reason_to_Boycott_Microsoft/GitHub:_The_War_on_Reverse- Engineering * The_Software_Freedom_Conservancy_Needs_to_Resign_From_Microsoft_Before Telling_Microsoft_to_Resign_From_RIAA ䷩ 𝚕𝚒𝚗𝚎 2103 ╒═══════════════════ 𝐀𝐑𝐓𝐈𝐂𝐋𝐄 ═════════════════════════════════════════════════╕ (ℹ) Images, hyperlinks and comments at http://techrights.org/2022/01/11/digging-his-own-graveley/#comments Gemini version at gemini://gemini.techrights.org/2022/01/11/digging-his-own-graveley/ ⠀⌧ █▇▆▅▄▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 01.11.22⠀▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▃▄▅▆▇█ ⌧ Gemini_version_available_♊︎ ✐ [Teaser]_Microsoft’s_Balabhadra_(Alex)_Graveley_Digging_His_Own_Grave_by Strangulation⠀✐ Posted in Deception, Microsoft at 3:51 pm by Dr. Roy Schestowitz Background: Arrest/Police_Report_for_Microsoft’s_Chief_Architect_of_GitHub Copilot,_Balabhadra_Alex_Graveley 🄸🄼🄰🄶🄴_🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽_⦇alex-strangulation⦈_ Summary: Becoming an imposter of one’s own victim or evidence tampering is a very serious abuse; as we shall see some time soon, Microsoft’s biggest liability in GitHub (best_friend_of_the_CEO_Nat_Friedman) isn’t done digging his own grave yet ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠙⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠃ ䷩ 𝚕𝚒𝚗𝚎 2169 ╒═══════════════════ 𝐀𝐑𝐓𝐈𝐂𝐋𝐄 ═════════════════════════════════════════════════╕ (ℹ) Images, hyperlinks and comments at http://techrights.org/2022/01/11/irc-log-100122/#comments Gemini version at gemini://gemini.techrights.org/2022/01/11/irc-log-100122/ ⠀⌧ █▇▆▅▄▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 01.11.22⠀▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▃▄▅▆▇█ ⌧ Gemini_version_available_♊︎ ✐ IRC_Proceedings:_Monday,_January_10,_2022⠀✐ Posted in IRC_Logs at 2:08 am by Needs Sunlight Also available via the Gemini protocol at: * gemini://gemini.techrights.org/irc-gmi/irc-log-techrights-100122.gmi * gemini://gemini.techrights.org/irc-gmi/irc-log-100122.gmi * gemini://gemini.techrights.org/irc-gmi/irc-log-social-100122.gmi * gemini://gemini.techrights.org/irc-gmi/irc-log-techbytes-100122.gmi Over HTTP: 🄸🄼🄰🄶🄴_🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽_⦇H 🄸🄼🄰🄶🄴_🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽_⦇HTML5_logs⦈_ #techrights_log_as_HTML5 #boycottnovell_log_as_HTML5 🄸🄼🄰🄶🄴_🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽_⦇H 🄸🄼🄰🄶🄴_🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽_⦇HTML5_logs⦈_ #boycottnovell-social_log_as_HTML5 #techbytes_log_as_HTML5 🄸🄼🄰🄶🄴_🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽_⦇t 🄸🄼🄰🄶🄴_🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽_⦇text_logs⦈_ #techrights_log_as_text #boycottnovell_log_as_text 🄸🄼🄰🄶🄴_🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽_⦇t 🄸🄼🄰🄶🄴_🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽_⦇text_logs⦈_ #boycottnovell-social_log_as_text #techbytes_log_as_text Enter_the_IRC_channels_now =============================================================================== § IPFS Mirrors⠀➾ CID Description Object type IRC log for  QmWCn76KZkPR7FFCxcxZujTFh5r4899CXs8tSFZYhmccne #boycottnovell 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇HTML5 logs⦈ (full IRC log as HTML) IRC log for #boycottnovell  QmSTsivHVXNZq3X7KW9uudkggwPSUjqcCkiN37bsyHJMaJ (full IRC log 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇text logs⦈ as plain/ASCII text) IRC log for #boycottnovell-  Qmf2FTg4RiM6Cy7krMNJFpnysAaPAcpC8NRf37rbZRNeFN social 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇HTML5 logs⦈ (full IRC log as HTML) IRC log for #boycottnovell-  QmTnDipBg8JLMyVDxPA6bcqcxzt5stDNqkm3mem5xFf2Mh social 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇text logs⦈ (full IRC log as plain/ASCII text) IRC log for  QmdHZMYS4L9mCmpgGhG8VAwnoV37r1i1ARJTrUkbgRBaeU #techbytes 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇HTML5 logs⦈ (full IRC log as HTML) IRC log for #techbytes  QmNQKXrK3rUk8DY8JDYP7cHua7HrmPXmxyBUysKhQSi3ny (full IRC log 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇text logs⦈ as plain/ASCII text) IRC log for  QmfTVQiDrf6d9UZoziRP7weG55bTqK556aHwkfpKANtW7F #techrights 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇HTML5 logs⦈ (full IRC log as HTML) IRC log for #techrights  QmYQugAR8HC75nx7yxH61u1Psnq5yb3i2MLkTMCMekvn4m (full IRC log 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇text logs⦈ as plain/ASCII text) 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇IPFS logo⦈ § Bulletin for Yesterday⠀➾ Local_copy | CID (IPFS): QmU5vYfwSWKbwcf52ai4QQxmeVvq2qk4Rno1afMvVcdEUm ䷩ 𝚕𝚒𝚗𝚎 2296 ╒═══════════════════ 𝐀𝐑𝐓𝐈𝐂𝐋𝐄 ═════════════════════════════════════════════════╕ (ℹ) Images, hyperlinks and comments at http://techrights.org/2022/01/11/phoronix-and-microsoft-mesa/#comments Gemini version at gemini://gemini.techrights.org/2022/01/11/phoronix-and-microsoft-mesa/ ⠀⌧ █▇▆▅▄▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 01.11.22⠀▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▃▄▅▆▇█ ⌧ Gemini_version_available_♊︎ ✐ Microsoft_Thinks_It_Owns_Mesa_(and_Computer_Games)⠀✐ Posted in Deception, GNU/Linux, Kernel, Microsoft at 3:35 pm by Dr. Roy Schestowitz Video_download_link | md5sum e77e3134aa5b9988072f2ae29694b916 Calling Out the Threat Creative Commons Attribution-No Derivative Works 4.0 http://techrights.org/videos/phoronix-and-microsoft-mesa.webm Summary: Microsoft keeps hijacking projects that compete against Windows, thinking that it is “Mister Linux” and “Mister_Mesa”; Linux news sites should recognise this ongoing threat and cover it accordingly, not celebrating these attacks Michael Larabel is a good person, but no person is perfect and over the years we’ve written about the twists and turns of his first baby, Phoronix [1, 2, 3], which is the means by which he makes a living for his wife and toddler. I don’t mean to sound too critical of Larabel, but it remains to be seen whether he can accept that Microsoft is definitely not a friend of Linux (not the same as the Linux_Foundation) and should be treated accordingly. As someone put it hours ago_in_the_comments: “Linux will benefit? If not, their patches shouldn’t be included in mesa [...] It’s mainly for Linux to begin with and most of the mesa code serves Linux. Their intentions are clearly bad, so mesa is becoming Microsoft sink.” (Slightly edited) “As noted in the video above, some graphics (drivers) coders in the Linux world have openly complained about this WSL agenda, which not only messes with Mesa but also works against Linux’s interest.”It’s about Microsoft “Embracing and Extending” Mesa to promote Windows and DirectX. As noted in the video above, some graphics (drivers) coders in the Linux world have openly complained about this WSL agenda, which not only messes with Mesa but also works against Linux’s interest. Microsoft loves Windows, not Linux. If Phoronix loves Linux, then it should adapt to the threat, which is now an_inside_threat. █ ䷩ 𝚕𝚒𝚗𝚎 2356 ╒═══════════════════ 𝐃𝐀𝐈𝐋𝐘 𝐋𝐈𝐍𝐊𝐒 ═════════════════════════════════════════════╕ ⠀⌧ █▇▆▅▄▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 01.11.22⠀▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▃▄▅▆▇█ ⌧ Gemini_version_available_♊︎ ✐ Links_11/1/2022:_Btrfs_Improvements_and_DXVK_1.9.3⠀✐ Posted in News_Roundup at 9:56 am by Dr. Roy Schestowitz 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇GNOME bluefish⦈ § Contents⠀➾ * GNU/Linux o Distributions o Devices/Embedded * Free_Software/Open_Source * Leftovers * § GNU/Linux⠀➾ o ⚓ My_polyamorous_relationship_with_operating_systems:_FreeBSD, openSUSE,_Fedora_&_Co.⠀⇛ Recently, I have posted blogs and articles about three operating systems (or rather OS families) I use, and now people ask which one is my “true” love. It’s not easy, but I guess, the best way to describe it is that both FreeBSD and openSUSE are true ones, and Fedora & Co. is a workplace affair  This is why I’m writing that it is a polyamorous relationship. Let me explain! My first ever opensource operating system was FreeBSD. I got an account on the faculty server in 1994, a FreeBSD 1.X system. A few months later, I got the task to install Linux and a year later I ended up using S.u.S.E. Linux on the second faculty server. Soon, I was running a couple of Linux and FreeBSD servers at the university and elsewhere as a part-time student job. SuSE Linux also became my desktop operating system. I have always liked state-of-the art hardware, and while I felt FreeBSD to be a lot more mature on the server-side, it did not play well on a desktop. 25+ years later, it is still the case… o § Audiocasts/Shows⠀➾ # ⚓ Destination_Linux_260:_A_Retro-spective_of_Classic_Linux Distros⠀⇛ This week’s episode of Destination Linux, we’re going to talk about the Classics of the distro world. Then we’re going to discuss some updates to Audacity. Plus we’ve also got our famous tips, tricks and software picks. All of this and so much more this week on Destination Linux. So whether you’re brand new to Linux and open source or a guru of sudo. This is the podcast for you. # ⚓ Late_Night_Linux_–_Episode_159_–_Late_Night_Linux⠀⇛ A simple FOSS way to share your mouse and keyboard across multiple machines, and a handy command line tool to find duplicate files. Plus your predictions for 2022 including gaming, GNOME, Firefox, Raspberry Pi, and PipeWire. # ⚓ Ask_A_KDE_Dev_Anything_–_TEST!_–_Kockatoo_Tube⠀⇛ Yo, come at me and ask me stuff! I’ll use this stream to check if things work or not. o § Kernel Space⠀➾ # ⚓ Linux_Kernel_5.16_Released._This_is_What’s_New⠀⇛ Linus Torvalds released Linux Kernel 5.16 as the first stable Kernel release of the year 2022, improving storage, processor, ports and all modules. We wrap up the release in this post with download and installation guidelines. # ⚓ Linux_Garbage_Collection_Memory_Corruption⠀⇛ Linux suffers from a garbage collection memory corruption vulnerability by resurrecting a file reference through RCU. # ⚓ Btrfs_Seeing_Nice_Performance_Improvements_For_Linux_5.17_– Phoronix⠀⇛ With the Btrfs file-system popularity ticking back up, that seems to be helping upstream enthusiasm and development efforts as with Linux 5.17 there is yet more exciting work. Btrfs for the Linux 5.17 kernel has prepared another round of performance optimizations on top of tuning found in prior kernel versions. There is also some new core features and never-ending work on code clean-ups and other underlying improvements. On the performance front for Btrfs with Linux 5.17 there is now less metadata needed for directory logging, which can mean directory deletion is now 20~40% faster. # § Graphics Stack⠀➾ # ⚓ DXVK_1.9.3_is_out_supporting_DLSS,_D3D9_improvements and_more_|_GamingOnLinux⠀⇛ DXVK, the Vulkan-based implementation of D3D9, D3D10 and D3D11 for Wine / Proton has version 1.9.3 out now. This is what’s used in Steam Play Proton, to help get Windows games running nicely on Linux. It’s a bit of an uphill battle to get so many tens of thousands of games to work nicely, but DXVK shows just how powerful and flexible Vulkan is as an API. This release brings support for NVIDIA DLSS (Deep Learning Super Sampling) for supported games, when used along with dxvk-nvapi. There’s also a bunch of optimizations and accuracy improvements for D3D9 that should help fix games like Red Orchestra 2, Dark Souls 2 (original version), Dog Fight 1942, Bayonetta, Rayman Origins, Guilty Gear Xrd and Richard Burns Rally. # ⚓ DXVK_1.9.3_Released_with_Improvements_for_Black_Mesa, Crysis_3,_and_Many_Other_Games⠀⇛ DXVK 1.9.3 is here about four months after DXVK 1.9.2 to make the DLSS implementation work on supported games in combination with dxvk-nvapi, optimize the D3D9 shader constants for games using software vertex processing, and fix a DXGI issue causing games to fail to enter full-screen mode on some displays that don’t support low rates across all resolutions. # ⚓ DXVK_1.9.3_Released_With_NVIDIA_DLSS_Integration, Many_Game_Fixes⠀⇛ DXVK 1.9.3 is out as its first release of 2022 for implementing Direct3D 9/10/11 over Vulkan for allowing Windows games to enjoy good performance when running atop Linux via Valve’s Steam Play. With DXVK 1.9.3 there is NVIDIA Deep Learning Super Sampling (DLSS) support in place when used in conjunction with the DXVK-NVAPI component for implementing the NVIDIA NVAPI interface. DXVK-NVAPI usage supports DLSS both for Vulkan and via D3D11/D3D12 Windows games. DXVK 1.9.3 also brings optimized Direct3D 9 shader constants handling, D3D9 floating point emulation improvements, and a variety of fixes benefiting different games. # ⚓ The_importance_of_window_to_desktop_file_mapping_– Nico’s_blog⠀⇛ Now that we established why it is important to map a window to a desktop file, how is it done? On Wayland the xdg-shell protocol, which is responsible for application windows, has builtin support for passing a desktop file name in form of set_app_id. On X11, it’s more complicated. For Qt applications the plasma-integration Qt Platform Theme sets a KDE-specific window property that contains the desktop file name. The task manager reads this property and handles it accordingly. GTK apps have a very similar window property, named _GTK_APPLICATION_ID. However, until now Plasma did not use this information at all! Beginning with Plasma 5.25 the task manager will take _GTK_APPLICATION_ID into account, which fixes matching Gedit and other apps. # ⚓ Mike_Blumenkrantz:_How_To_Bug⠀⇛ I posted some fun fluff pieces last week to kick off the new year, but now it’s time to get down to brass tacks. Everyone knows adding features is just flipping on the enable button. Now it’s time to see some real work. If you don’t like real work, stop reading. Stop right now. Now. Alright, now that all the haters are gone, let’s put on our bisecting snorkels and dive in. o § Applications⠀➾ # ⚓ Modern_Alternatives_to_Some_of_the_Classic_Linux_Commands⠀⇛ When you start learning Linux, you begin with a standard set of Linux commands that have been in existence since the UNIX days. As you grow old as a Linux user, you keep on mastering the same set of standard commands. But these standard, legacy commands were created several decades ago and while they do their intended jobs, their functionalities could be improved and the structure could be simplified. # ⚓ 5_Best_Free_and_Open_Source_Scala_Static_Site_Generators⠀⇛ LinuxLinks, like most modern websites, is dynamic in that content is stored in a database and converted into presentation-ready HTML when readers access the site. While we employ built-in server caching which creates static versions of the site, we don’t generate a full, static HTML website based on raw data and a set of templates. However, sometimes a full, static HTML website is desirable. Because HTML pages are all prebuilt, they load extremely quickly in web browsers. There are lots of other advantages of running a full, static HTML website. o § Instructionals/Technical⠀➾ # ⚓ How_to_install_QPrompt_as_an_alternative_to_Teleprompter⠀⇛ An outbreak of COVID-19 cases has changed the way of living life earlier, we used to go to our offices, colleges, schools, but now we shifted to a virtual environment. Now you attend your office meeting from the couch, children attending their school while taking a nap, and many untold stories of different domains. Whatever the situation is, you take the help of video to convey your thought, and It’s quite possible to make mistakes while shooting a video. And it’s quite embarrassing too. Qprompt is one of the teleprompter software available on all major platforms, including Android mobile, and most importantly, it is an open-source application. # ⚓ The_Zorin_Appearance_Tool⠀⇛ The Zorin Appearance tool can mimic the desktop layout of proprietary operating systems, making it appealing to newcomers. Switching to Linux can be a bewildering experience for Windows and macOS users. To ease this transition, some distributions offer desktop environments that imitate proprietary ones. For example, ChaletOS, Linuxfx, and ReactOS all offer imitations of various versions of Windows, while elementary OS’s desktop is sometimes said to resemble that of ReactOS. Yet, no other distribution takes this approach as far as Zorin OS. Depending on the release version, Zorin OS offers as many as eight desktop layouts in its Zorin Appearance tool that loosely resemble those on everything from proprietary operating systems and mobile touchscreens to Ubuntu’s Unity. However, if you expect a full emulation of these operating systems, you may be disappointed. Zorin OS is an Ubuntu-derivative founded in 2009 by brothers Artyom and Kyrill Zorin and is currently based in Ireland. Zorin 16, the most recent version, comes in three editions: Core, a free version intended for modern computers; Lite, a free edition intended for “low-spec PCs up to 15 years old,” according to the download page; and Pro, which includes advanced productivity apps, costs $39, and can be installed for individuals with one license for multiple computers. All the versions default to a modified Xfce desktop with a minimalist modern appearance. However, the available settings range from elementary cosmetic control settings to unique controls over the applications that make up the desktop environment. On a virtual machine, you will need 35GB for installation, a high number which might well interfere with Zorin’s use on an older, small computer. In fact, while Zorin OS responds quickly while up and running, its boot and shutdown are notably sluggish. # ⚓ Terraform_Module_Dependency_–_buildVirtual⠀⇛ As of Terraform 0.13 you can create dependencies between your Terraform modules easily. Version 0.13 of Terraform has been available since August 2020, and introduced some enhancements to Terrafrom modules capability including count, depends_on and for_each functions. In this short article we will look at an example of how to use depends_on with Terraform modules. Terraform typically does a great job of understanding dependencies in your Terraform plans, however sometimes it is useful to manually configure a Terraform module dependency to ensure resources deploy in the expected order. # ⚓ Linux_Command:_Passwd_Usage⠀⇛ All the user accounts need passwords to log in via the different operating systems many times. In the same way, we can update the password settings for passwords as we did for the user. Thus, the passwd command is known for making updates to the password in Linux. Henceforth, we will discuss the usages of the “passwd” command in Ubuntu 20.04 terminal. Let’s start with the terminal launch in Ubuntu 20.04 system. It would be done using the shortcut “Ctrl+Alt+T” in the Ubuntu 20.04 desktop. The terminal will be opened on your screen. # ⚓ CUPS_web_interface_fixed⠀⇛ # ⚓ How_to_Install_Handbrake_Video_Transcoder_1.5.1_in_Ubuntu 20.04_/_21.10_|_UbuntuHandbook⠀⇛ The popular free open-source Handbrake video transcoder released version 1.5.0 a day ago and then 1.5.1 with quick fix. Here’s what’s new and how to install it in Ubuntu / Linux Mint. # ⚓ Linux_Command:_Usermod_Usage⠀⇛ Linux is a diverse operating system most known for its terminal commands. These commands are of a hundred types and usages. One of these Linux commands is the “Usermod” command. The usermod command can be used for performing a lot of things using flags. This command is specifically designed for Linux users to update and change anything regarding other users in their existing system. Within this guide today, you will see the different uses of the “Usermod” command in Ubuntu 20.04. Let’s have a new start with some of the usermod command examples to see those flags working. Let’s get started. Let’s start with the launch of a Ubuntu 20.04 console application. The shortcut key “Ctrl+Alt+T” will be used to launch it in our system quickly. To use the usermod command in Linux, we must use it in the terminal with sudo rights. For the use of sudo rights, you have to use the keyword “su” in the shell, as shown below. It will require your root account password and press Enter to do so. You will see that we will be able to work in a sudo terminal environment. # ⚓ How_to_Install_Cockpit_on_Fedora_35_–_LinuxCapable⠀⇛ Cockpit is a free remote server manager that is lightweight and easy to use for GNU/Linux servers. Cockpit is a web-based graphical interface for servers intended for people new to Linux to the experts such as sysadmins. Cockpit makes Linux discoverable, allowing anyone using the software to perform tasks such as start containers, administer storage, configure networks, and inspect logs. In the following tutorial, you will learn how to install or enable Cockpit on Fedora 35 Workstation or Server. # ⚓ Install_a_Redis_server_on_Debian_11_–_Unixcop_the_Unix_/ Linux_the_admins_deams⠀⇛ Hello, friends. In this post, we will install a Redis server in Debian 11. For this, we will use the Debian repository that provides the most suitable way. # ⚓ MySql_Contains_Podman_-⠀⇛ MySQL contains is a prominent open-source relational database administration system and one of the popular web server solutions. It stores and structures data in a meaningful and ensures easy accessibility. A container image is maintained by the community. Podman is a set of platform-as-a-service developments that support CI/CD development. It allows to develop and deploys applications inside virtual environments, called containers. Podman boots up an application with all its libraries and dependencies with a single image. # ⚓ MySQL_Database_Commands_Cheat_Sheet_for_Linux⠀⇛ Both MySQL and MariaDB are attributed as open- source relational database management systems (RDBMS). Since MySQL is broken down to either community or enterprise release. MariaDB became a drop-in replacement to parade all the structured query language (SQL) features offered by MySQL but at an open-source cost. So whether you are using MySQL Enterprise Edition, MySQL Community Edition, or MariaDB, this article is for you. By the end of your read, you should be comfortable with the use of the powerful structured query language mimicked by these RDBMS. # ⚓ How_to_Install_Fail2ban_with_Firewalld_on_Fedora_35_– LinuxCapable⠀⇛ Fail2ban is an intrusion prevention software framework that protects computer servers from primarily brute-force attacks, banning bad user agents, banning URL scanners, and much more. Fail2ban achieves this by reading access/error logs of your server or web applications. Fail2ban is coded in the python programming language. The following tutorial will teach you how to install Fail2ban on Fedora 35 Workstation or Server and some basic setup and tips. # ⚓ How_to_Install_ClamAV_on_Fedora_35_–_LinuxCapable⠀⇛ ClamAV is an open-source and free antivirus software toolkit able to detect many types of malicious software, including viruses, trojans, malware, adware, rootkits, and other malicious threats. One of its primary uses of ClamAV is on mail servers as a server-side email virus scanner or used on file hosting servers to periodically scan to make sure files are clean, especially if the public can upload to the server. ClamAV supports multiple file formats (documents, executables, or archives), utilizes multi-thread scanner features, and receives updates for its signature database daily to sometimes numerous times per day for the latest protection. In the following tutorial, you will learn how to install and use ClamAV on Fedora 35 Workstation or Server. # ⚓ How_to_Install_MariaDB_10.6_on_Fedora_35_–_LinuxCapable⠀⇛ MariaDB is one of the most popular open-source databases next to its originator MySQL. The original creators of MySQL developed MariaDB in response to fears that MySQL would suddenly become a paid service due to Oracle acquiring it in 2010. With its history of doing similar tactics, the developers behind MariaDB have promised to keep it open source and free from such fears as what has happened to MySQL. MariaDB has become just as popular as MySQL with developers, with advanced clustering with Galera Cluster 4, faster cache/indexes, storage engines, and features/extensions that you won’t find in MySQL. In the following tutorial, you will learn how to install MariaDB 10.6 on Fedora 35 Workstation or Server. # ⚓ How_to_Install_SQLite_3_on_Fedora_35_–_LinuxCapable⠀⇛ SQLite is a free, lightweight relational database management system (RDBMS) in a C library. SQLite is not a client-server database engine. Instead, it is embedded into the end program. Primarily all programming languages support SQLite, which how languages embed the program is with a file with .sqlite3/.sqlite/.DB extension. The software is a popular choice for local/client storage such as web browsers, Android devices, and much more. The list is quite extensive. In the following tutorial, you will learn how to install SQLite 3 with Fedora 35 Workstation or Server. # ⚓ It_only_takes_minutes_to_set_up_a_Git_repository_on_Linux_– TechRepublic⠀⇛ If you need a quick code repository, you have everything you need with git and SSH. Jack Wallen shows you how it’s done. # ⚓ Install_Deepin_Desktop_Environment_(UbuntuDDE)_on_POP_OS⠀⇛ In this tutorial, we learn the steps to install popular Deepin Dekstop- DEE on POP_OS 20.04 LTS or 21.04 Linux using the command terminal. Deepin is one of the most beautiful Linux distro based on the Debian operating system. However, there are many people who refrain themselves from using either because of its origin or slow repository. Hence, one of the best ways to experience its beauty is by installing the Deepin Desktop GUI on our existing POP_OS operating systems. Moreover, installing a new operating system is also cumbersome if you have already have set up applications you required on it. In such as scenario, installing an extra GUI apart from the default one will be a good idea. POP_OS comes with a popular Gnome desktop environment, however being a Linux distro, users are free to install any popular Linux GUI with few commands such as Cinnamon, XFCE, etc. However, unlike other GUI, the Deepin Linux desktop is not available through the default base repository of POPOS. Therefore, to get it we have to add a repo manually. And the best way is to use the package repo made available by UbuntuDDE, an Linux operating system based on Ubuntu and running with DDE. # ⚓ 4_Ways_to_Install_Discord_client_on_Ubuntu_22.04_|_20.04 LTS_–_Linux_Shout⠀⇛ In this tutorial, we learn the commands and steps to install GitHub alternative self-hosted GitLab on Ubuntu 20.04 Focalusing the terminal. # ⚓ Install_Gitlab_on_Ubuntu_20.04_LTS_Focal_fossa_Linux_– Linux_Shout⠀⇛ GitLab is a version control system( VCS). It is based entirely on Git, a distributed versioning system that is made available as open-source software. Git is by far the most widely used VCS in the world. GitLab is not much different from GitHub, both web-based solutions are based on Git for managing the various repository created by developers. Anyone who is acquainted with GitHub would already know what is Gitlab, still, if you are not then it is an alternative to Github. It is a solution that was written by Ukrainian Dmitriy Zaporozhets in collaboration with Valery Sizov in 2011 using the programming language Ruby on Rails. After Microsoft took over GitHub in 2018, many users switch to GitLab to mitigate the monopoly of one platform. Being a version management platform the key task of GitLab is to save and document all changes to files done by developers and their source code to make them easily traceable at any time. Hence, GitLab including Github is more inclined and used by the programmers and developers to make things easy for them. Due to a version control system, several developers can work on the same project simultaneously. Know more about this platform’s history at Wikipedia. # ⚓ How_to_Install_Apache_Cassandra_on_AlmaLinux_/_Rocky_Linux 8⠀⇛ Apache Cassandra is an open-source NoSQL distributed database management system. Cassandra can be scaled horizontally by adding more nodes across which data is replicated automatically. Nodes can be added or removed without any downtime. The nodes can be organized logically as a cluster or a ring and set up across multiple data centers to improve speed and reliability for high- performance applications. In this tutorial, we will learn how to install Apache Cassandra on AlmaLinux and Rocky Linux 8 OS. The commands for both the Operating systems will be identical unless specified otherwise. # ⚓ How_to_Install_LEMP_Stack_on_Fedora_35_–_LinuxCapable⠀⇛ LEMP is a collection of open-source software commonly used to serve web applications. The term LEMP is an acronym that represents the configuration of a Linux operating system with an Nginx (pronounced engine-x, hence the E in the acronym) web server, with site data stored in a MySQL or MariaDB database and dynamic content processed by PHP that is popularly used for hosting extensive websites due to its performance and scalability. In the following tutorial, you will learn how to install LEMP (Nginx, MariaDB, PHP) on Fedora 35 Server or Workstation. The tutorial will install various version choices with Nginx, MariaDB, and PHP. # ⚓ How_to_Install_ModSecurity_&_OWASP_Core_Rule_Set_with_Nginx on_Fedora_35_–_LinuxCapable⠀⇛ ModSecurity, often referred to as Modsec, is a free, open-source web application firewall (WAF). ModSecurity was created as a module for the Apache HTTP Server. However, since its early days, the WAF has grown and now covers an array of HyperText Transfer Protocol request and response filtering capabilities for various platforms such as Microsoft IIS, Nginx, and Apache. How the WAF works, the ModSecurity engine is deployed in front of the web application, allowing the engine to scan the incoming and outgoing HTTP connections. ModSecurity is most commonly used in conjunction with the OWASP Core Rule Set (CRS), an open-source set of rules written in ModSecurity’s SecRules language and is highly regarded among the security industry. # ⚓ Freezing_your_Node.js_dependencies_with_yarn.lock_and –frozen-lockfile⠀⇛ When Yarn introduced a lock file (similar to Gemfile.lock), it did it with an unexpected twist. If you need reproducible builds, yarn.lock is not enough. What is a lock file? Lock files ensure that the defined dependencies from files such as package.json get pinned to specific versions. This later ensures parity on developers’ workstations, CI, and production. Many people probably depend on Yarn doing the right thing and installing only the pinned versions from yarn.lock on yarn install. But, unfortunately, this is not the case… The default behavior of yarn install is that the yarn.lock file gets updated if there is any mismatch between package.json and yarn.lock. Weird, right? (In comparison, other package managers such as RubyGems would only ever look at lock files and install the pinned versions from there.) # ⚓ How_to_Setup_Varnish_SSL_Termination_with_Nginx_Web_server on_Rocky_Linux_8⠀⇛ Varnish cache software does not support SSL/TLS by default. You need additional software to enable SSL/TLS support on Varnish. SSL Termination is a method to enable SSL/TLS on Varnish. You can use Hitch, Nginx, or Apache to enable SSL termination for the Varnish HTTP accelerator. SSL termination software will be running on the HTTPS port ’443′ and handles all HTTPS requests from clients. After that, all requests will be forwarded to the varnish cache software, then forward to the origin backend server. # ⚓ How_to_find_a_domain’s_authoritative_nameservers⠀⇛ To be able to tell which one is happening (do you need to make a change, or do you just need to wait?), you need to be able to find your domain’s authoritative nameserver and query it to see what records it has. But when I looked up how to find a domain’s authoritative nameserver online to see what advice was out there, I found a lot of conflicting answers. So here’s how I look up a domain’s authoritative nameserver when I want to be 100% sure I’m getting the right answer. In this example, we’re going to look up the authoritative nameserver for jvns.ca. There are 2 steps, and the hardest part is just knowing what line of dig’s output to use. # ⚓ How_to_use_Podman_to_get_information_about_your_containers |_Enable_Sysadmin⠀⇛ Podman is a daemon-less engine for developing, managing, and running Open Container Initiative (OCI)-compliant containers. This is the second article in a series about using Podman based on things I do in my real work environment. In my previous article, I showed you how to start containers quickly and easily using the familiar interface of shell scripting. In this article, I’ll demonstrate how to get insight into running containers. If you want to follow along with this article, first run the shell scripts I used in the “Setting things up” section of the first article in this series. [...] There are more options to explore in the podman ps and podman stats toolset. Try them out to familiarize yourself with the outputs. As you do, you’ll become comfortable with the commands, and you’ll be able to decide what suits your ongoing needs best. Podman is gaining more and more followers as a convenient and flexible tool for managing containers and images. Understanding how to use it for things such as listing running containers gives you an advantage in managing containers. In my next article, I’ll explore how to get your container’s external internet protocol (IP) address. Until then, you can learn more about Podman from 10 Podman guides to do more with containers in 2022, Top 10 container guides for sysadmins, and of course, Podman.io. # ⚓ How_to_set_up_Laravel_Bagisto_with_Nginx_and_PHP-FPM_in Rocky_Linux/Alma_Linux_8⠀⇛ Bagisto is an easy to use, free and open source Laravel eCommerce platform to build your online shop in no time. In this guide we will learn how to configure Laravel Bagisto with Nginx and PHP-FPM with MariaDB as the data source. # ⚓ How_to_install_and_Configure_Mariadb_10_in_Rocky_Linux/Alma Linux_8⠀⇛ In this guide we will learn how to install and configure MariaDB in Rocky Linux/Alma Linux 8. MariaDB is an open-source one of the most popular relational database management system (RDBMS) that is a highly compatible drop-in replacement of MySQL. It is built upon the values of performance, stability, and openness, and MariaDB Foundation ensures contributions will be accepted on technical merit. MariaDB was developed as a software fork of MySQL in 2009 in response to Oracle’s acquisition of MySQL. MariaDB intends to remain free and open- source software under the GNU General Public License. It is part of most cloud offerings and the default in most Linux distributions. # ⚓ What_is_BusyBox_in_Linux?_How_to_Use_it?⠀⇛ BusyBox is getting popular these days, specially among Docker users. Many Docker images use BusyBox to provide you with a minimal image. And this could leave many users confused specially if you take Linux commands for granted. You think ls, mv and other such commands are part of Linux, while the truth is that these commands are part of GNU Coreutils package and most Linux distributions have it preinstalled. GNU Coreutils is almost the de facto provider of various UNIX/Linux commands. Almost because there are always alternatives and BusyBox is one such alternative to GNU Coreutils. # ⚓ This_Tool_Adds_More_Display_Scaling_Levels_for_Ubuntu_Gnome on_X_|_UbuntuHandbook⠀⇛ As you may know, Gnome control center (aka settings) has “Fractional Scaling” option since Ubuntu 20.04, allows to change scaling level for HiDPI displays. By default, user may scale up to 125%, 150%, 175% and 200% to make Ubuntu (or other GNOME based Linux, such as Fedora) to be read easily. In this tutorial, I’m going to introduce “BetterScale”, a command line tool gives more scaling levels. # ⚓ Most_Simple_Linux_Commands_With_10_Examples⠀⇛ In this guide you are going to learn the most simple yet powerful Linux commands which every Linux system user should know. These commands are used over and over on your daily work. Below given the Tips & Tricks you are about to learn. # ⚓ How_To_Manage_Location_Sharing_on_Your_Android_Device⠀⇛ Suppose you’re looking for someone but not able to find him/her. You know the place where he/she is, but not the exact location. No worries, your Android can make things easy for you in situations like this. You just need to share the exact location from the person’s (you’re looking for) Android to your Android. By doing so, you can easily reach your exact destination. So, manage your Android location sharing and get things done pretty easily. Moreover, you can also manage your app location sharing access on your Android along with WiFi and Bluetooth scanning to detect the location automatically. Additionally, real-time location sharing, Google’s location history on/off, is also there for your convenience. So finding or hiding your location is not a big deal anymore. o § Distributions⠀➾ # § New Releases⠀➾ # ⚓ antiX-sid_iso_files_available⠀⇛ For those that like to live on the bleeding edge and build upwards from a small base, antiX has made available iso files based on Debian sid. We offer the following completely systemd- free and elogind-free flavours for both 32 and 64 bit architecture. User can download sysVinit or runit versions. antiX-core (c460MB) – no X, but should support most wireless (libdbus-1-3 is installed). # § SUSE/OpenSUSE⠀➾ # ⚓ SUSE-Dell_Technologies_partnership_continues_to_shine with_Joint_Open_Source_Solutions_|_SUSE_Communities⠀⇛ More value. Less effort. Less worry. No lock- in. For more than 20 years now, these are the shared values of SUSE and our partners at Dell Technologies. We believe in our joint ventures, but we still want you to feel you have the final decision to love us, no questions asked. And that’s how the future should be because it will be widely distributed over sensors and machines, in the cloud, on-premise and at the edge, all with a strong open-source backbone. Together we continue to collaborate over platform integration, original equipment manufacturer (OEM) support, and a solid compute foundation. We enable enterprises to deploy interoperable platforms for mission- critical computing and delivery IT services across your own blend of physical, virtual and cloud environments. And we base it all on SUSE Linux. # ⚓ SA_Power_Networks_focuses_on_sustainability_with SUSE⠀⇛ “We’re completing four full patching cycles a year with very few issues thanks to the reliability of SUSE Linux Enterprise Server.” Pino Lascala, Server Technical Engineer (Unix), SA Power Networks. # § Librem⠀➾ # ⚓ Secure_and_Cloud-Friendly_Experience_with_Librem_14 and_NextCloud⠀⇛ If you are wondering how to be on the cloud with your Librem device, we recommend Nextcloud, the freedom-respecting online productivity platform that keeps you in control. Nextcloud allows you to upload, edit, and share documents and files. It also has calendering and advanced plugins. # ⚓ 2021_Year_in_Review:_Design_–_Purism⠀⇛ This year, just like the previous years, the Purism design team has been focusing on improving the overall Librem products experience. We took this opportunity to contribute to some amazing upstream projects like Libadwaita for the world to benefit from those modern and respectful technologies. Our goal is to make each Librem product simple and usable by anyone, while remaining secure and respecting digital rights. We are also working on unifying the overall experience across the different devices by designing UIs and gestures that naturally adapt to different screen sizes and orientations. We want people using a Librem desktop or laptop computer to feel at home when using a Librem 5 and vice-versa. # § Canonical/Ubuntu Family⠀➾ # ⚓ Linux_Release_Roundup_#22.2:_EasyOS_3.2,_Linux_Mint 20.3,_Neptune_7.0,_and_More_Releases_–_It’s_FOSS_News⠀⇛ Linux Mint 20.3 is a point upgrade with several improvements and some new additions. You should also find a new application with this release to manage documents/ebooks. For more details, you should read our initial impressions and highlights on Linux Mint 20.3. # ⚓ Ubuntu_Fridge_|_Ubuntu_Weekly_Newsletter_Issue_717⠀⇛ Welcome to the Ubuntu Weekly Newsletter, Issue 717 for the week of January 2 – 8, 2022. # ⚓ Release_of_Vanilla_framework_v3.0_|_Ubuntu⠀⇛ We’ve just released Vanilla v3.0 – a new major update to our CSS framework. It includes a few significant updates and improvements around spacing variables, responsive breakpoints, a new expanding search box and various updates to existing components. Important aspects of the release include dropping a noticeable chunk of deprecated styles and components and removing IE support. [...] We’ve always put a lot of attention into making sure components in Vanilla are consistently spaced and that all text and block elements align properly to our baseline grid. To make it possible while keeping the framework flexible, we used to have quite a large number of spacing variables in our SCSS code. These were used to add various amounts of horizontal or vertical spacing to the elements. We also had separate variables for “inner” and “outer” spacing. These turned out to be confusing, as it wasn’t always clear for more complex components if the given space should be considered “inner” or “outer”. The other aspect that made Vanilla spacing complicated was the density multiplication factor that could be changed on a framework level. It affected some of the spacing variables (that we called “scaleable”), but not the others. It was not widely used and was the source of some confusion and bugs. For Vanilla 3.0 we decided to refactor the spacing variables and reduce the number of them. We did this by removing the separation of “inner” and “outer” spacing, merging different variables that share the same values and removing the density multiplier and all variables that it affected. We still kept separate variables for horizontal and vertical spacing (to make it clear which values should be used in given directions), but they all follow the same naming conventions. So, “small” horizontal spacing has the same value as “small” vertical one. Alongside this work, we also cleaned up and refactored some spacing related mappings. This allowed us to reduce the number of our main spacing variables from 20 to around 10 with much more clear and consistent naming. o § Devices/Embedded⠀➾ # ⚓ Rockchip_RK3568_SBC_to_power_4G/5G,_WiFI_6_connected_smart displays,_features_an_optional_tuner_–_CNX_Software⠀⇛ Geniatech is back with another Rockchip RK3568 SBC. The K3-3568 single board computer is designed specifically for smart displays with 4G LTE, 5G, or WiFi 6 connectivity, and follows last year’s “Geniatech RK3568 development board” (aka DB3568) offered as a full-featured development kit for Rockchip RK3568 SoC. K3-3568 SBC ships with up to 8GB RAM, up to 64GB eMMC flash, and offers multiple display interfaces with HDMI, MIPI DSI, LVDS, eDP, plus and an internal HDMI input connector, as well as support for an optional DVB-T2, ISDB-T, DMBT, or ATSC digital tuner. # § Open Hardware/Modding⠀➾ # ⚓ New_Raspberry_Pi_CM4_add-on_makes_it_easy_to_use full-sized_PC_components⠀⇛ Plugging in a CM4 board to the Interceptor adds a ton of ports to the tiny machine: four RJ45 Ethernet ports, five standard SATA ports (for hard drives, SSDs, or external media), two USB 2.0 ports, and two full-sized HDMI ports. Other expansion options include a standard set of case controller pins and four cooling fans, plus a 9-pin header for even more USB expansion. Power comes from a standard ATX motherboard power connector, compatible with that dusty power supply you haven’t used since the Pentium 4 was top-of- the-line. # ⚓ Microchip_SAM_L22_board_makes_Casio_F-91W_watch_more customizable_(Crowdfunding)_–_CNX_Software⠀⇛ Casio F-91W is a popular watch that was first released in 1989, and it is still sold today for around $15. The team at “Oddly Specific Objects” decided to create the “Sensor Watch” open-source hardware board based on Microchip SAM L22 Cortex-M0+ microcontroller that can replace the electronics inside the watch. They still keep the display and enclosure and wristband from the original Casion F-91W watch, but the new board connects to a temperature sensor board, and more importantly, provides the ability to hack/ program the watch with your own code, besides the few samples provided, or even design your own sensor board. # § Mobile Systems/Mobile Applications⠀➾ # ⚓ These_New_Features_Are_Coming_to_Android_in_2022⠀⇛ # ⚓ Google’s_“Sooner”_Was_The_First_Android_Phone⠀⇛ # ⚓ Samsung_Galaxy_A52s_5G_is_the_latest_model_to_receive Android_12_update_with_One_UI_4_–_GSMArena.com_news⠀⇛ # ⚓ Google_Duo_has_an_annoying_audio-breaking_bug_on Android_12,_but_a_fix_is_underway⠀⇛ # ⚓ LG_Android_11_update_(LG_UX_10)_list_of_eligible devices_&_release_date⠀⇛ # ⚓ Android_app_deals_of_the_day:_SpongeBob,_Peace, Death!,_Money_Manager_Expense,_more_–_9to5Toys⠀⇛ # ⚓ Learn_what’s_new_in_Google_Play_system_updates_for Android_–_9to5Google⠀⇛ # ⚓ A_Magic_new_Android_phone_thinks_it_can_fix_Samsung’s biggest_flaw_|_Express.co.uk⠀⇛ # ⚓ Gmail_crosses_10_billion_installs_on_Android,_fourth Google_app_to_do_so_|_Technology_News,The_Indian Express⠀⇛ o § Free, Libre, and Open Source Software⠀➾ # § Web Browsers⠀➾ # § Chromium⠀➾ # ⚓ Chromium_Blog:_Chrome_98_Beta:_Color_Gradient Vector_Fonts,_Region_Capture_Origin_Trial,_and More⠀⇛ Unless otherwise noted, changes described below apply to the newest Chrome beta channel release for Android, Chrome OS, Linux, macOS, and Windows. Learn more about the features listed here through the provided links or from the list on ChromeStatus.com. Chrome 98 is beta as of January 10, 2022. You can download the latest on Google.com for desktop or on Google Play Store on Android. # ⚓ Google_Rolls_Chrome_98_Into_Beta_With_COLRv1 Font_Support_–_Phoronix⠀⇛ Following last week’s release of Chrome 97, Google has promoted Chrome 98 to beta form. With Chrome 98 there are a variety of small additions but mostly developer- facing items. Some of the Chrome 98 beta highlights include: - COLRv1 color gradient vector fonts are supported as a new font format. These color fonts are made up of glpyhs with multiple colors in them such as for emoji, country flags, or multi- colored letters. More details on COLRv1 fonts via developer.chrome.com. # § Mozilla⠀➾ # ⚓ Mozilla_launches_study_into_Facebook_data collection⠀⇛ Mozilla, the company behind the Firefox browser, is partnering with the nonprofit newsroom The Markup to launch a study that will analyze how Facebook tracks data for targeted ads and to tailor content recommendations for users. The study will use tools provided by Rally, a privacy-focused data sharing platform created by Mozilla in June, Mozilla announced Monday. Firefox users can opt into the “Facebook Pixel Hunt” study through Rally. The study will collect the data sent to Facebook pixels as users browse, the URLs of the web pages users browse, the time users spend browsing pages and the presence of Facebook login cookies in users’ browsers. # ⚓ Mozilla_and_Linux_Mint_sign_a_partnership agreement⠀⇛ Linux Mint, developer of the popular Linux distribution, and Mozilla, maker of the popular Firefox web browser and Thunderbird email client, have signed a partnership agreement. The Linux Mint team announced the partnership on the official blog. According to the information published there, the partnership is commercial and technical in nature. Some things will change for Linux Mint users who use Firefox as a browser on the system. Linux Mint shipped Firefox with a custom set of settings and configurations in the past, and most of these will be dropped to go back to the defaults. # ⚓ Firefox_96_is_Available_to_Download,_This_is What’s_New_–_OMG!_Ubuntu!⠀⇛ Mozilla Firefox 96 is out. The first major update to the browser this year comes with a modest miscellany of improvements, plus a few Linux-specifics changes users may be interested to hear about. But we’ll start with something everyone: better security. Firefox 96 ships with the Cookie Policy: Same-Site=lax setting enabled by default. This, Mozilla say, “provides a solid first line of defense against Cross-Site Request Forgery (CSRF) attacks”. Nice. Next, Mozilla says it made “significant improvements in noise-suppression and auto-gain-control as well as slight improvements in echo-cancellation to provide you with a better overall experience.” This relates to the browser’s built-in Media Capture and Streams API which is used in WebRTC. # ⚓ Firefox_96_Yields_Less_Load_On_The_Main_Thread, WebP_Encoder_For_Canvas_–_Phoronix⠀⇛ Firefox 96.0 is officially shipping today as the first update of 2022 for this open-source web browser. Firefox 96.0 has “significantly” reduced the amount of load placed on the browser’s main thread and there is also “significant” improvements in noise suppression and auto-gain-control and improvements in echo cancellation. In addition to that performance work, there are also WebRTC improvements, an improved cookie policy to reduce the likelihood of Cross-Site Request Forgery (CSRF) attacks, video quality degradation fixes, and other fixes. # ⚓ Linux_Mint_Partners_with_Mozilla_to_‘Improve Firefox_Experience’_–_It’s_FOSS_News⠀⇛ Linux Mint announced a partnership with Mozilla. Considering Linux Mint offers Firefox as the default web browser and continues to use Thunderbird as the email client, it sounds like a piece of good news. But, what exactly does the partnership affect? What are the changes that come with Firefox on Linux Mint? [...] Linux Mint will be dropping its customizations and using the default configurations for the Firefox browser, identical to other operating systems or distributions. This should ensure that you get a uniform Firefox browsing experience, no matter the platform. # ⚓ Updating_to_Firefox_96⠀⇛ Yesterday we announced a new partnership with Mozilla and a transition to Mozilla default settings in Firefox 96. If you didn’t read this announcement yet, please visit https:// blog.linuxmint.com/?p=4244. Today, in preparation for Firefox 96 I want to make one more blog post, this time to talk specifically about technical details and to help people before, through and after the transition. Firefox 96 is out today but we’ll publish the update on Friday January 14th. This will give everyone a few days to read this post, prepare for the update and get an opportunity to ask questions and seek help before the transition. # § FSF⠀➾ # § Licensing/Legal⠀➾ # ⚓ Making_Open_Source_economy_more_viable_with dual_license_collectives⠀⇛ Here is an idea that has been sitting in my mind for more than a year now, and I still think it might work. I finally decided to write it down, so people can tell me if it already has been tried or why is it bad. I almost never have any truly unique idea, so I bet someone will send me a link proving that I just suck at googling stuff. If you think it’s good – feel free to give it a try. After all, ideas are cheap and execution is where the value is. # § Programming/Development⠀➾ # ⚓ Setting_Up_a_CI_System_Part_3:_Provisioning_Your_CI Gateway⠀⇛ In this article, we will further discuss the role of the CI gateway, and which steps we can take to simplify its deployment, maintenance, and disaster recovery. This work is sponsored by the Valve Corporation. # § Perl/Raku⠀➾ # ⚓ Raku_Advent_Calendar:_All_the_blogs_posts_of 2021⠀⇛ # ⚓ 2022.01/02_Perching?_–_Rakudo_Weekly_News⠀⇛ Inspired by the mention of increased number of visitors to the 2021 Raku Advent Calendar (up 180% from 2020), and an article about the cycle of adoption of technology, Steve Roe created a Pull Request for the Raku’s Most Wanted list, which describes a plan to make the Raku Programming Language the tool of choice for the scientist / programmer that is hitting the limits of Python. Hopefully, a Python Perch for all the people working on this in the Rakudo Weekly News, will become a thing! * § Leftovers⠀➾ o ⚓ From_the_Market_Mirage_to_Regional_Communities:_the_Communitarian Vision_of_William_Appleman_Williams⠀⇛ Friedman made that statement in 1982, even as the laissez-faire economic ideas that had seemed impossible through much of his career were coming to fruition. The new Reagan Administration was busy cutting government programs and regulations, while reducing taxes on corporations and the wealthy. “Government is not the solution to our problem, government is the problem,” Reagan had proclaimed in his inaugural address. It was a sharp turn from previous decades. The 1930s Depression had deeply discredited free market economics. From the 1930s New Deal to the 1960s Great Society, expansion of government and its role in society had been the hallmark. But the 1970s saw the emergence of multiple crises. Oil prices skyrocketed, while inflation radiated throughout a stagnating economy. The old economic formulas no longer seemed to work. The ruling business and political classes were under severe challenge. Wealth inequality, always a major divide, reached a historically low point in the mid-1970s, while labor intensified its demands. The ideas of Freidman and other free market economists developed in the 1950s and ‘60s had already undergone a test run in Chile after the 1973 coup. Now the ruling classes of the U.S. were ready to implement them wholesale in the U.S., even as Margaret Thatcher brought them to the fore in the UK. Strictly speaking, the neoliberal revolution did not so much reduce government as the parts of government that benefitted ordinary people, while attacking labor and unleashing corporations from much of the regulatory framework created in previous decades. The trend continued through Republican and Democratic administrations. o ⚓ ProPublica’s_Year_in_Visual_Journalism⠀⇛ We at ProPublica often tell stories about vulnerable people who have been failed by powerful individuals and institutions. Through our visual journalism, we aim to help our readers connect with and contextualize these stories. o § Hardware⠀➾ # ⚓ A_Simple_EMF_Detector_And_Electroscope_You_Can_Make_From Junk_Box_Parts_|_Hackaday⠀⇛ Electromagnetic fields are everywhere, all around us. Some are generated naturally, but in vast majority of cases, it’s we humans that are generating them with artificial, electronic means. Everything from your mobile phone to the toaster will emit some sort of signal, be it intentional or not. So we think it only befits the general electronics-orientated hacker to have some way of sniffing around for these signals, so here is [Mirko Pavleski] with his take on a very simple pair of instruments to detect both static and dynamic electromagnetic fields. [...] The first unit (a simple electroscope) uses a cascade of 2N2222 NPN bipolar transistors configured to give a high current gain, so any charge near the antenna will result in increasing currents in subsequent stages, finally illuminating the LED. Simple stuff. o § Health/Nutrition/Agriculture⠀➾ # ⚓ Disability_Rights_Advocates_Condemn_CDC_Director’s ‘Abhorrent’_Comments_on_Covid-19_Deaths⠀⇛ Disability rights groups on Sunday were among those expressing horror at comments by Centers for Disease Control and Prevention director Dr. Rochelle Walensky regarding who is most likely to die from the Omicron variant of Covid-19. On “Good Morning America” Friday, Walensky shared what she said was “encouraging news” about the variant which is driving case numbers to record highs in the U.S., saying, “The overwhelming number of deaths, over 75%, occurred in people who had at least four comorbidities.” # ⚓ Why_Doesn’t_the_Supreme_Court_Want_Workers_to_Be_As_Safe From_Covid_as_They_Are?⠀⇛ All the Supreme Court justices are vaccinated. The court, moreover, was an early adopter of remote working to keep the justices safe, and even as they’ve gone back to the court in person, they still require Covid testing of those who will argue in front of them. It would seem the nine people who can be removed from power only by death are taking the best available precautions to stay alive. # ⚓ The_Front_Lines_of_Omicron⠀⇛ This winter brings a bleak sense of déjà vu to the Boston-area ICU where I work. Once again, beds are increasingly occupied by critically ill patients with Covid-19. When I join Zoom calls with physicians from other hospitals to coordinate regional “load balancing” of ICU beds—exchanging patients between facilities to prevent overload—the tone is again tense. # ⚓ Omicron_Spike_Is_Straining_Hospitals_as_Health_Care_Workers Leave_the_Profession⠀⇛ # ⚓ Congress_Is_Providing_KN95s_to_Lawmakers._What_About_the Rest_of_Us?⠀⇛ # ⚓ ‘Good_News_for_Seniors’:_Becerra_Orders_Medicare_to Reassess_Premium_Hike⠀⇛ As the head of the U.S. Department of Health and Human Services announced Monday that he was ordering a review of a planned 15% hike in the Medicare Part B premium for 2022, healthcare reform advocates stressed the need for Congress to pass a Build Back Better bill with a provision allowing the federal government to negotiate the price of prescription drugs. “Pharma corporations cynically anticipate public anger at high launch prices and so plan for ‘voluntary’ price reductions.” # ⚓ ‘What_About_the_General_Public?’:_Members_of_Congress_to Get_KN95_Masks_Amid_Omicron_Wave⠀⇛ With Capitol Hill—like much of the United States—experiencing a major spike in Covid-19 cases, members of Congress and their offices are reportedly set to receive KN95 masks to help stem the spread of the highly contagious Omicron variant. “There are unprecedented infections around the entire country! What about the general public?” # ⚓ Breaking_Point:_Ed_Yong_Says_Omicron_Is_Straining_Hospitals &_Schools_Amid_Vaccine_Mandate_Pushback⠀⇛ The Omicron variant’s transmission rate is exponentially higher than Delta, leaving healthcare workers across the U.S. in dire straits. Waves of doctors, nurses and other health professionals are unionizing, and some have quit the profession over exploitative conditions. The staffing shortage has added on to the strains of increasing hospitalizations due to COVID-19, limited availability of necessary equipment and lack of federal support for preventative measures such as paid medical leave. “This is the cost of two years spent pushing prematurely for a return to normal,” says Ed Yong, Pulitzer Prize-winning reporter and science writer at The Atlantic. Yong also discusses the debate over keeping schools open during the COVID-19 surge, and challenges to President Biden’s vaccine mandates affecting nearly 100 million workers. # ⚓ As_Djokovic_Leaves_Australian_Detention_Hotel,_Refugees Held_There_Urge_World_Not_to_Forget_Them⠀⇛ As an Australian judge allows unvaccinated tennis star Novak Djokovic to be released from immigration detention amid controversy over his COVID vaccine exemption, we look at how his case has intensified international scrutiny over Australia’s inhumane treatment of refugees jailed in the same rundown hotel. “No one is telling us when we get out of this indefinite detention,” says Mehdi Ali, an Iranian refugee currently detained by the Australian government at the Park Hotel in Melbourne. We also speak with former Australian soccer player Craig Foster, who advocates for asylum seekers. # ⚓ Calls_for_Paid_Leave_Grow_as_Workers_Face_‘Vicious_Cycle’: Their_Jobs_or_Covid_Safety⠀⇛ As U.S. workers ill with Covid-19 during the Omicron surge face the stark choice of staying home without pay at the risk of losing their jobs or reporting to work and possibly infecting colleagues and customers, progressives on Monday renewed calls for the implementation of paid sick leave at the national level. “I thought I was doing the right thing by protecting my co-workers. Now I wish I just would’ve gone to work and not said anything.” o § Integrity/Availability⠀➾ # § Proprietary⠀➾ # § Security⠀➾ # § Privacy/Surveillance⠀➾ # ⚓ Australian_Government_Reviews_Its Encryption-Breaking_Law,_Says_It’s_Cool_And Good⠀⇛ The Australian government gave itself encryption-breaking powers at the end of 2018. The law went into effect January 2019. The beneficiaries of the law immediately swept in to reap the rewards. Demands for “exceptional access” required tech companies to break encryption upon request to hand over communications and data sought by law enforcement and security agencies. # ⚓ Here_Comes_the_Digital_Markets_Act, Important_New_Legislation_From_the_EU Boosting_Privacy_and_Interoperability⠀⇛ Where the DSA is highly contentious, because of its desire to lay down what is illegal content online — something that touches on human rights such as freedom of speech — the DMA has a great deal of support across the political spectrum in Europe. The GAFAM group has long been regarded as too powerful, and even as a threat to European democracy; calls to clip the wings of these companies have been heard for years. The DMA aims to impose a number of wide-ranging restrictions on these digital giants, and if passed is likely to have a major impact on them not just in the EU, but globally. # ⚓ Moxie_Marlinspike_has_stepped_down_as_CEO of_Signal⠀⇛ Founded in 2014, Signal has grown into one of the most trusted and robust apps for encrypted messaging. The service has more than 40 million monthly users and is regularly recommended in security guides. Established as a nonprofit, the company is not supported by advertising or app sales, instead relying on donations and a recently launched sustainer program. # ⚓ The_FCC’s_still_in_a_stalemate_a_year into_Biden’s_presidency⠀⇛ After nearly a year into Joe Biden’s presidency, new pressure is mounting on the Senate to expeditiously confirm nominations for positions at two of the federal government’s top agencies with control over broadband and data privacy. In new statements issued on Monday, public interest groups Free Press Action and Fight for the Future called on the Senate Commerce Committee to fill the final seats at the Federal Communications Commission and the Federal Trade Commission. Both Gigi Sohn and Alvaro Bedoya, for the FCC and FTC, respectively, have finished their confirmation hearing processes, but neither nomination has received a final committee vote to set them up for floor confirmation. o § Defence/Aggression⠀➾ # ⚓ Citing_‘Blatant_Acts_of_Insurrection,’_NC_Voters_Petition to_Bar_Cawthorn_From_Seeking_Reelection⠀⇛ Citing U.S. Rep. Madison Cawthorn’s alleged participation in the January 6 coup attempt, a group of North Carolina voters on Monday submitted a legal challenge to prevent the Republican lawmaker from seeking reelection in 2022. “Cawthorn has engaged in blatant acts of insurrection. He must be held accountable for his actions which have threatened our democracy.” # ⚓ Opinion_|_Killer_Robots_and_the_Laws_We_Need_to_Stop_Them⠀⇛ Here’s a scenario to consider: a military force has purchased a million cheap, disposable flying drones each the size of a deck of cards, each capable of carrying three grams of explosives—enough to kill a single person or, in a “shaped charge,” pierce a steel wall. They’ve been programmed to seek out and “engage” (kill) certain human beings, based on specific “signature” characteristics like carrying a weapon, say, or having a particular skin color. They fit in a single shipping container and can be deployed remotely. Once launched, they will fly and kill autonomously without any further human action. # ⚓ Progressives_Demand_Biden_End_Sanctions_to_Avert_Mass Starvation_in_Afghanistan⠀⇛ Progressive U.S. lawmakers and human rights advocates are urging the Biden administration to immediately lift economic sanctions on Afghanistan that are fueling a humanitarian disaster and as famine threatens millions in the war-torn nation. “Afghanistan is facing an avalanche of hunger and destitution the likes of which I have never seen in my 20 plus years with the World Food Program.” # ⚓ Lethal_Robotic_Weapons_Systems_Are_on_the_Rise,_But_So_Is the_Fight_to_Stop_Them⠀⇛ # ⚓ When_Sidney_Poitier_Picked_Up_the_Gun⠀⇛ I was 15 in the summer of 1968, when it seemed everybody my age and older was out in the streets. Instead, I hunkered down and let the world’s rage, turbulence, and intensity come to me. I absorbed it all. And got so used to my hopes being dashed by the events of that summer that I expected disappointment each day as if it were a regular meal. # ⚓ Nina_Khrushcheva:_Putin_Could_Be_Kingmaker_in_Kazakhstan Power_Struggle_as_Russia_Helps_Quell_Protests⠀⇛ Kazakhstan’s authoritarian President Kassym-Jomart Tokayev has described last week’s protests as an attempted coup and defended his call for Russian- led troops into the country to put down the unrest. Demonstrations were triggered by a rise in fuel prices and widened to broader anti-government protests. Over 160 people were killed in the violence, including a 4-year-old girl, and thousands were detained. “The Russian troops will probably get out, but Tokayev, if he keeps power … probably will be somehow in debt of Putin, and Putin may have [the] position to decide, or help decide, certain moves in Kazakhstan,” says Nina Khrushcheva, professor of international affairs at The New School. # ⚓ A_grim_year:_Meduza’s_Andrey_Pertsev_sums_up_the_key developments_in_Russia’s_domestic_politics_in_2021⠀⇛ The year 2020 saw the death of public politics in Russia. To accommodate a plebiscite on amending the constitution, the authorities introduced a three- day voting period (leaving ballots unsupervised at polling stations overnight), as well as “mobile polling stations” (giving rise to the infamous “stump” voting). The official result was 67 percent turnout, with 78 percent of voters supporting the constitutional changes.  # ⚓ Putin_Unlikely_to_Invade_Ukraine_Despite_Overheated_U.S. Rhetoric,_Says_Khrushchev’s_Great-Granddaughter⠀⇛ U.S. and Russian officials are meeting today in Geneva as NATO calls on Russia to remove its troops from along the Ukrainian border. The Russian military has also mobilized soldiers to suppress protests in Kazakhstan. We go to Moscow to speak with Nina Khrushcheva, professor of international affairs at The New School, who says President Vladimir Putin is expanding Russia’s sphere of influence but will not invade Ukraine. “It’s not that he wants to take more territory. I think he wants to get heard,” says Khrushcheva. # ⚓ ‘Reinforced_concrete_guarantees’_Here’s_what_the_heads_of the_Russian_and_U.S._delegations_said_after_today’s_talks_in Geneva⠀⇛ On Monday, January 11, diplomats from Russia and the United States held a series of security talks in Geneva. Taking place against the backdrop of Russia massing troops along its border with Ukraine, the discussion centered around a set of draft security proposals that Moscow presented to the United States and NATO in December. Speaking to reporters after the talks, Russian Deputy Foreign Minister Sergey Ryabkov and U.S. Deputy Secretary of State Wendy Sherman underscored that no concrete decisions have been made as of yet. Here are their comments to the press, in a nutshell.  # ⚓ Denying_the_Inevitable:_Why_the_West_Refuses_to_Accept China’s_Superpower_Status⠀⇛ To help us understand what this claim precisely means, the FT writer uses an analogy. “To use a sporting analogy, you can be an extremely gifted tennis player and genuinely want to be world champion, but still be unwilling to make the sacrifices to turn the dream into reality.” At least, in Rachman’s thinking, China is capable of being a political actor, though it remains incapable of vying for the superpower status, as it supposedly lacks ‘the will’ to make the required ‘sacrifices’. # ⚓ The_U.S._Makes_a_Mockery_of_Treaties_and_International Law⠀⇛ This cudgel is now used most commonly against China and Russia. Oddly enough, whenever the United States asserts this “rules-based order” that China (and other “revisionist powers”/enemy states) are violating, the United States never seems to clarify which “rules” are being violated, but simply releases a miasma of generic accusation, leaving the stench of racism and xenophobia to do the rest. This is because there is a fundamental contradiction at the heart of the RBIO. # ⚓ January_6th:_From_Standoff_to_Siege_and_Back_Again⠀⇛ As Western Watersheds Project and others said at the time, the siege of the Capitol was unprecedented but unsurprising. A former senior domestic terrorism analyst described it as “A straight line that you can draw” between Jan. 6, 2021 and the 2014 standoff at the Bundy Ranch. To those of us who have been watching the uprising of anti-government sentiment play out on public lands in the West, the trajectory was painfully clear. The same “Don’t Tread on Me” flags waving on the national mall had been flying from flagpoles in rural towns, and were trademarks of both the occupation of the Malheur National Wildlife Refuge in 2016 and the standoff at the Bundy Ranch in Bunkerville in 2014. The resistance to, and resentment of, the government’s nominal protection and management of federally-managed lands from private exploitation by grazing has been a ‘thing’ in the West since the Taylor Grazing Act took the public land out of the hands of the cattle industry. Though certainly not the only – or most extreme – example of white supremacists laying claim to lands that don’t belong to them, public lands ranchers and the January 6 insurrectionists have the same sense of entitlement about having the government run in accordance with their beliefs and for their benefit. # ⚓ The_Pentagon_and_CIA_Have_Shaped_Thousands_of_Hollywood Movies_into_Super_Effective_Propaganda⠀⇛ # ⚓ Opinion_|_Hey,_Hey,_USA!_How_Many_Bombs_Did_You_Drop Today?⠀⇛ The Pentagon has finally published its first Airpower Summary since President Biden took office nearly a year ago. These monthly reports have been published since 2007 to document the number of bombs and missiles dropped by U.S.-led air forces in Afghanistan, Iraq and Syria since 2004. But President Trump stopped publishing them after February 2020, shrouding continued U.S. bombing in secrecy. # ⚓ More_German_state_police_forces_introduce_tasers_for_patrol police⠀⇛ Four out of 16 federal states are now introducing electric pulse weapons across the board. The right- wing conservative police union DPolG has declared itself to be the mastermind and is sponsored by a manufacturer. Whether the officers will use less violence with the new weapons, as claimed, is questionable. Every year there are two deaths in Germany after being tasered # ⚓ Anti-War_Voices_Denounce_Knighting_of_Ex-PM_Tony_Blair⠀⇛ Outrage continues to swell over the recent decision to give a knighthood to former Prime Minister Tony Blair, who was instrumental in the bloody U.S.-led invasions of Iraq and Afghanistan, with anti-war campaigners in the U.K. gearing up for a protest later this year. “We will protest at this grotesque award in the name of the Iraqis, the Afghans, the families who lost soldiers, the refugees, and victims of these and subsequent wars.” # ⚓ How_Close_Is_Iran_to_Getting_a_Nuclear_Weapon?⠀⇛ There are a number of critical technological hurdles Tehran must surmount first to acquire a fully functioning nuclear weapons program. Iran must develop enough highly enriched, weapons-grade uranium to fuel one or more nuclear bomb; construct a nuclear warhead capable of housing the fissile nuclear fuel; and develop a ballistic missile system capable of delivering a nuclear explosive to its target. Finally, it needs to conduct a test to see if the explosive actually works. # ⚓ The_disturbing_parallels_between_the_2020s_and_1940s_in_the U.S.⠀⇛ These “paradigms” have been for more than a year a regular subject of discussion between me and Jay Weixelbaum. He’s a writer and business historian who’s producing a streaming mini-series about the time a Nazi spy joined US businessmen to toast the fall of France in a Manhattan hotel while a Jewish FBI agent investigated. Jay’s project is called A Nazi on Wall Street. (You can donate to the cause here.) During our conversation, he explained why he believes we are moving into a new paradigm and how the choices made in the 1940s seem to mirror choices being made in the 2020s. We could have turned fully fascist back then. Let’s hope we don’t do that now. o § Environment⠀➾ # ⚓ NOAA_Report_Shows_310_Climate-Linked_Disasters_Cost_US_Over $2_Trillion_Since_1980⠀⇛ As new statistics published Monday by the U.S. National Oceanic and Atmospheric Administration revealed the United States has sustained more than $2 trillion in damages wrought by over 300 weather and climate disasters since 1980, a leading economist specializing in equitable climate solutions reiterated the need for urgent action—starting with passing Democrats’ flagship Build Back Better Act—to mitigate the planetary emergency.   “Policymakers must take drastic actions to rein in global warming emissions across all sectors of the economy.” # ⚓ Opinion_|_The_Climate_Crisis_Is_Clawing_Back_Progress_We Made_to_Save_the_Puffins⠀⇛ I stepped onto the battlefield of climate change, sidestepping carcass after carcass. In the grass were the remains of Arctic terns, common terns, and roseate terns. Along the boulders, researchers pointed out dead puffin chicks. As other climate war zones smolder with wildfire embers, are strewn with flattened homes, or marked by bleached coral, the signature of conflict on a seabird island in the Gulf of Maine is a maddening quietude. # ⚓ Obsession:_Climate_Change_Russian_Roulette⠀⇛ How about geo-engineering to reflect sunlight back into space, and cool the Earth? A friend asked: Is Dr. Ye Tao’s mirrors-on-the-ocean-surface scheme to reduce solar influx and thus reduce global warming reasonable? [2] My initial reaction: It’s like wearing a thicker helmet so you can keep playing Russian Roulette. # § Energy⠀➾ # ⚓ Opinion_|_The_Fed_Is_Getting_This_Economy_All_Wrong⠀⇛ Friday’s jobs report from the Department of Labor was a warning sign about the US economy. It should cause widespread concern about the Fed’s plans to raise interest rates to control inflation. And it should cause policymakers to rethink ending government supports such as extended unemployment insurance and the child tax credit. These will soon be needed to keep millions of families afloat. # ⚓ We_Need_the_Fossil_Free_Finance_Act_Now_to_Combat Wall_Street’s_Greenwashing⠀⇛ # ⚓ Fukushima_Takes_a_Turn_for_the_Worse⠀⇛ The problems, issues, enormous danger, and ill timing of deconstruction of a nuclear disaster is always unexpectedly complicated by something new. That’s the nature of nuclear meltdowns, aka: China Syndrome debacles. As of today, TEPCO is suffering some very serious setbacks that have “impossible to deal with” written all over the issues. # ⚓ Bakers:_Expensive_electricity_will_raise_price_of pastries⠀⇛ Increased electricity bills are eating away at the stocks entrepreneurs have managed to save up during the coronavirus crisis. Bakeries say that rising energy, raw material and labor prices will eventually lead to higher product prices. # § Wildlife/Nature⠀➾ # ⚓ Vanishing_Lines_I_Ski_resort_expansion_is_destroying our_last_living_glaciers.⠀⇛ # ⚓ Cargo,_With_a_Side_of_Hornets,_Flies_and_Crabs⠀⇛ # ⚓ The_Fish_and_Wildlife_Service_Must_Reject_Gianforte’s Political_Grizzly_Bear_Petition⠀⇛ The petition is not based upon the best scientific and commercial information available. In fact, its key provision of declaring the NCDE to be a genetically distinct population segment is devoid of any scientific backing or supporting data whatsoever and is not in accord with the Distinct Population Segment Policy. It is built entirely on numbers using questionable methods. Let’s be clear, the petition is a transparent political power grab and a vehicle to begin hunting of grizzly bears no matter the levels of other mortality sources. If delisted there WILL be hunting of grizzly bears with mortality exceeding sustainable levels. Forget science-based management. We can see the potential future of state management of grizzly bears by taking a look at the current wolf slaughter which has wiped out entire packs of Yellowstone wolves. By fencing bears into undersized recovery zones with a wall of mortality, the State is attempting to create distinct population segments through permanent isolation. The State’s plan allows for the NCDE grizzly population to fall more than 27% before remedial actions are even considered. That’s an invitation to the extinction vortex where rapid population decline cannot be reversed by management. o § Finance⠀➾ # ⚓ How_To_Destroy_Innovation_And_Competition:_Putting_SHOP SAFE_Act_Into_Innovation_And_Competition_Act⠀⇛ Last fall, we had three separate articles about the horrific problems of the SHOP SAFE Act — one by me, one by Cathy Gellis, and a massive one by Prof. Eric Goldman. The bill is extraordinarily bad, but it’s extraordinarily bad in a somewhat sneaky manner, which we’ll get to in a moment. # ⚓ Worshiping_Markets,_Genuflecting_to_Grand_Fortune⠀⇛ # ⚓ Think_Big_to_Overcome_Losing_Big_to_Corporatism⠀⇛ These bills included the creation of the Environmental Protection Agency (EPA) and environmental laws, the establishment of the Occupational Safety and Health Administration (OSHA) for worker health and safety, the Consumer Product Safety Commission (CPSC), the Freedom of Information Act (FOIA), and worker pension protection, among others. Alas, Richard Nixon was the last Republican president to be afraid of liberals. When grade B actor Ronald Reagan flew into Washington, he opened all doors to Big Business. A cruel man with a smile, Reagan gave an actor’s cover to the greatest collapse into the corporate power pits in American history. # ⚓ Knowledge_of_Build_Back_Better_is_Power⠀⇛ A day after news broke that Manchin’s “no” was not necessarily final and defending the senator’s earlier blanket refusal, Fox News Contributor Deroy Murdock fired off a barrage of invective. He wrote that “BBB [Build Back Better] is … a Pandora’s box teeming with far-Left vipers and viruses.” These include “[u]niversal pre-kindergarten, all the better to brainwash children with critical race theory …,” and a smorgasbord of “socialist goodies,” such as “body spa treatments” and “a Great Lakes heavy icebreaker.” Hardworking preschool teachers make sure that the toddlers in their charge learn all sorts of skills. Crafts, story time, potty training, and naps are also big parts of the day, so there is no room for critical race theory, a subject mostly taught in universities. In addition, I do not recall my political science professor ever teaching us that massages and icebreakers are critical elements in forming repressive, authoritarian regimes, even those with a socialist veneer. If he had, we might have wondered if he was qualified for the job or was simply joking. # ⚓ Inside_the_December_Jobs_Report:_Unemployment_Falls_to_3.9 Percent;_Wage_Growth_Remains_Strong⠀⇛ The unemployment rate fell another 0.3 percentage points in December, bringing the unemployment rate down to 3.9 percent. This is lower than all but five months in the late 1990s boom and the period between May 2018 and the pandemic. At the same time, the establishment survey showed a weaker than expected increase in 199,000 jobs; although the prior two months figures were revised upward by a total of 141,000. With the upward revisions, the average growth for the last three months was 365,000. # ⚓ Today_in_adulting:_At_nearly_38,_I_learned_that_dental insurance_almost_isn’t_worth_the_paper_it’s_printed_on.⠀⇛ I have fairly good teeth, so I haven’t had dental insurance in 20 years. But my spouse has awful teeth and has a dental insurance plan through Blue Cross/Blue Shield. They pitch it as paying for 80% of minor work (extractions, fillings) and 50% of major (crowns, root canals, and dentures), but what I found out is that their plan and their paper Explanation of Benefits that you get in the mail is really deceptive. What actually will happen is a bunch of things like, the dentist charges $275 for a filling, but Blue Cross/Blue Shield has an “allowable amount”. Now, on HEALTH insurance, an allowable amount would mean that they gave you a network discount and then paid 80% of that. o § AstroTurf/Lobbying/Politics⠀➾ # ⚓ Elizabeth_Warren_Demands_Information_on_Fed_Official’s Questionable_Stock_Trades⠀⇛ # ⚓ Opinion_|_The_Murderous_Corporate_Psychopaths_Who_Never_Go to_Prison⠀⇛ Alfred Ruf poisoned his wife as part of a scheme to get rich off her life insurance. So did Dr. Gregory “Brent” Dennis, who was looking at a $2 million payout. Joshua Hunsucker poisoned his wife for a mere $250K in life insurance money, $80,000 of which he used to buy a boat. David L. Pettis poisoned his wife for $150,000. # ⚓ Manchin_Filibuster_Talks_Like_“Negotiating_Via_Etch_A Sketch,”_Dem_Sources_Say⠀⇛ # ⚓ Sanders_Says_Democrats_Need_‘Major_Course_Correction’_to Prevent_GOP_Takeover⠀⇛ Sen. Bernie Sanders said in an interview published Monday that too much of the Democratic Party has “turned its back on the working class” and is in need of a dramatic shift as central elements of its agenda—from voting rights to climate action to social spending—face possible collapse thanks to corporate-backed lawmakers. In the conversation with The Guardian, Sanders (I- Vt.)—a two-time contender for the Democratic presidential nomination and the current chair of the Senate Budget Committee—said the party must immediately undertake “a major course correction” if it hopes to advance its popular agenda, reverse its falling support among key constituencies, and prevent the increasingly authoritarian GOP from seizing power. # ⚓ Who_could_ever_have_seen_this_coming?⠀⇛ As I approached what I should write about early in 2022, I thought that I should write about something more “meta”. (No, not the metaverse or Facebook’s crappy new name!) This reminds me of something I saw before the holidays on Twitter about retiring NIH director Francis Collins, who irritated me so much that I almost broke my vow not to blog over the holidays. Fortunately, I didn’t, which allowed me to contemplate it more and my anger to recede. That doesn’t change my level of frustration; so here we go. # ⚓ American_Exception:_Empire_and_the_Deep_State_with_Aaron Good_and_David_Talbot_–_The_Project_Censored_Show⠀⇛ # ⚓ North_Carolina_Voters_Challenge_Madison_Cawthorn’s Candidacy⠀⇛ # ⚓ When_Will_David_Brooks_Admit_That_Conservatism_Paved_the Way_for_Trump?⠀⇛ David Brooks is the prodigal son of the Democratic Party. As an undergrad at the University of Chicago in the early 1980s, he identified as a democratic socialist. But upon graduating he got caught up in the spirit of Reaganism, starting off as an intern for William F. Buckley Jr. Now, after more than three decades of being a formidable Republican advocate, Brooks is ready to return to the Democratic fold. # ⚓ Attention,_Democrats:_The_Constitution_Trumps_the Filibuster⠀⇛ Four times during this past congressional session, Senate Republicans have blocked voting rights legislation. Democrats are currently trying to decide whether to use their shaky, one-vote majority to end or limit use of the filibuster in order to overcome Republican opposition and pass a voting rights reform bill. As usual, they are divided. # ⚓ Opinion_|_Killing_Build_Back_Better_Could_End_Sinema_and Manchin’s_Careers:_Lessons_from_2010⠀⇛ Holding the fate of Build Back Better (BBB) in their hands, Senators Kyrsten Sinema and Joe Manchin should heed some lessons from 2010. When a small group of Democratic senators so delayed and weakened Obamacare that they cratered Obama’s initially massive support, they also helped end all their own political careers.  # ⚓ Groups_Tell_Biden_He’s_Not_Welcome_in_Georgia_Without_a ‘Finalized_Voting_Rights_Plan’⠀⇛ President Joe Biden is set to visit Atlanta on Tuesday to deliver a major speech on the state of voting rights in the U.S., but his planned visit has gotten a chilly reception from Georgia advocates who say they’re sick of lofty rhetoric and no action from Democratic leaders. In a joint statement ahead of Biden and Vice President Kamala Harris’ trip, a coalition of advocacy groups including the Black Voters Matter Fund, the Georgia NAACP, and the Asian American Advocacy Fund said the president must bring with him “an announcement of a finalized voting rights plan that will pass both chambers, not be stopped by the filibuster, and be signed into law.” # ⚓ Steve_Bannon_Is_Onto_Something⠀⇛ To Hersh, that’s not politics. It’s what he calls “political hobbyism.” And it’s close to a national pastime. “A third of Americans say they spend two hours or more each day on politics,” he writes. “Of these people, four out of five say that not one minute of that time is spent on any kind of real political work. It’s all TV news and podcasts and radio shows and social media and cheering and booing and complaining to friends and family.” Real political work, for Hersh, is the intentional, strategic accumulation of power in service of a defined end. It is action in service of change, not information in service of outrage. This distinction is on my mind because, like so many others, I’ve spent the week revisiting the attempted coup of Jan. 6, marinating in my fury toward the Republicans who put fealty toward Donald Trump above loyalty toward country and the few but pivotal Senate Democrats who are proving, day after day, that they think the filibuster more important than the franchise. Let me tell you, the tweets and columns I drafted in my head were searing. o § Misinformation/Disinformation⠀➾ # ⚓ Fox_News_has_a_Jan._6_problem:_Sean_Hannity’s_text_messages make_clear_his_complicity⠀⇛ It’s impossible to know for sure what he meant by “January 6th happening the way he is being told” but according to a number of accounts this was when Trump’s henchmen were hatching their plot to have Republicans in Congress object to the electoral count and have Pence throw the election to the House of Representatives where Trump would win despite losing through legitimate means. In other words, the coup was being planned. And apparently, the White House counsel’s office knew it was illegal and was threatening to quit en masse over it, or at least that’s the suspicion based upon what Hannity was texting. o § Censorship/Free Speech⠀➾ # ⚓ SOPA_Plus_10,_reflections_and_continued_work⠀⇛ On January 18, 2012, the web went dark in protest of the Stop Online Piracy Act (SOPA) and the Protect IP Act (PIPA), two bills introduced into the United States House and Senate in the last quarter of 2011. o § Civil Rights/Policing⠀➾ # ⚓ Immigration_Reform_Is_Still_Possible_—_With_a_Strong_Social Movement⠀⇛ # ⚓ Opinion_|_“The_White_Negro”:_Norman_Mailer’s_Essay_65_Years Later⠀⇛ A 1957 essay by celebrated writer Norman Mailer called  “The White Negro” is getting a lot of renewed attention these days. According to a just- published article by journalist Michael Wolff in a site called The Ankler, Random House decided against publishing a collection of Mailer’s essays after a “junior staffer” complained about “The White Negro,” which was going to be included in the anthology.  According to Wolff, the staffer believed that the title was racist and that was enough for Random House to scuttle the project in order to avoid controversy. This quickly triggered a debate on social media over so-called “cancel culture.” Did the nation’s largest book publisher cancel the Mailer book over fears of being called racist? # ⚓ Japanese_Women_Are_Fighting_Back_Against_Pervasive_Sexism⠀⇛ # ⚓ Starbucks_Workers_in_Chicago,_Ohio_and_Oregon_Join Unionization_Efforts⠀⇛ # ⚓ A_Free_South⠀⇛ In the 1960s, the Free Southern Theater, an organization founded by a group of activists with the Student Nonviolent Coordinating Committee (SNCC), traveled to a church in a predominantly Black, rural corner of Mississippi. There they staged Samuel Beckett’s Waiting for Godot, an absurdist drama about characters conversing as they wait for someone who never arrives. The play may have seemed like a strange choice—who would imagine that Beckett might connect with rural Black Americans in the throes of the civil rights movement?—but it found at least one admirer in civil rights leader Fannie Lou Hamer. “I guess we know something about waiting, don’t we?” Hamer said from the audience.1 # ⚓ ‘Absolute_Disgrace’:_Maine’s_Democratic_Gov._Kills_Bill_to Allow_Farmworkers_to_Unionize⠀⇛ Maine’s Democratic Gov. Janet Mills is under fire after vetoing a bill that would have allowed farmworkers in the state to unionize. The Maine Legislature passed a bill to give workers in agricultural industries the right to organize and collectively bargain for better wages, benefits, and working conditions. But in a move that labor reporter Kim Kelly called “an absolute disgrace,” Mills on Friday single-handedly prevented the proposal from becoming law. # ⚓ Conservatives_on_Supreme_Court_Poised_to_Block_Biden’s Vaccine_and_Mask_Mandates⠀⇛ # ⚓ Joleen_Nez:_A_Death_in_Custody⠀⇛ On April 16, 2020, Officer Preston Panana walked up to Joleen Nez at the corner of Texas Street and Zuni Avenue in Albuquerque. Nez was living in a nearby encampment in a neighborhood known as the War Zone, along with dozens of other unhoused Native Americans. About six months pregnant with her fifth child, Nez, who is Navajo and Zia Pueblo, was getting her meals at the Albuquerque Indian Center, where she’d known some of the staff for years. Panana was with four other police officers when he heard Nez and a man arguing. As the two quarreled, the man set a paper cup and bowl down on the sidewalk, and Nez knocked them over. That’s when, as Panana wrote in the incident report, he advised her “to pick up her litter and of the consequences if she did not.” # ⚓ Podcast_Episode:_Algorithms_for_a_Just_Future⠀⇛ EFF’s Cindy Cohn and Danny O’Brien joined Vinhcent to discuss our digital privacy and how U.S. laws haven’t kept up with safeguarding our rights when we go online.  ⚓ The_Civil_Rights_Era_on_Screen:_the_Legacy_of_Sidney_Poitier⠀⇛ “He has carved for himself an imperishable niche in the annals of our nation’s history,” King told the audience of 2,000 delegates. “I consider him a friend. I consider him a great friend of humanity.” That man was Sidney Poitier. ⚓ Amazon_shortens_paid_leave_policy_for_employees_infected_with_COVID-19⠀⇛ Amazon is shortening its paid leave policy for employees infected with COVID-19 following the change in quarantine guidance from the Centers for Disease Control and Prevention. Amazon told all U.S. employees on Friday that paid leave for COVID-19 quarantine will be shortened from 10 days to seven days. § Internet Policy/Net Neutrality⠀➾ * ⚓ Cable_TV_Cord_Cutting_Continues_To_Set_Records,_Though_Streaming_TV_Is Slowing_Down_Too⠀⇛ For more than a decade, cable TV executives brushed aside the threat of cable TV “cord cutting” as either a nonexistent threat or a temporary phenomenon. Of course neither wound up being true, and consumer defections from the bloated, pricey traditional cable TV bundle continue to set records during the COVID crisis. Traditional cable TV providers saw a 6.2% drop in subscribers in the third quarter of 2021, an all time record. It’s particularly bad for traditional satellite TV providers, who saw a 12% dip in overall users during the same quarter. § Digital Restrictions (DRM)⠀➾ * ⚓ WarnerMedia_Renews_Comcast_Carriage_Deal,_CNN_Plus_to_Become_Available on_Xfinity_Platforms⠀⇛ As part of the extended agreement, Comcast will make CNN Plus, WarnerMedia’s upcoming subscription streaming platform, available on its Xfinity X1, Xfinity Flex and XClass TV platforms later in the year, following its first-quarter launch. This marks the first distribution deal set for the new streamer. * ⚓ Canon_ink_is_freaking_out_after_shipping_without_crucial_chips._Here’s how_to_fix_it⠀⇛ Canon is reporting that it has been forced to ship ink cartridges without chips that identify ink levels, leading to error messages when the cartridges are inserted. The company has published a workaround while it sorts the issue out. Canon reported that supply chain shortages have forced the printer manufacturer to ship consumable print cartridges without certain semiconductors inside them. Canon doesn’t describe exactly what these chips do, though a German support page (as discovered by TechRadar) says that they oversee “certain additional functions” such as toner level detection. § Monopolies⠀➾ * ⚓ Antitrust_Suit_Alleges_16_Elite_Universities_Colluded_to_Limit Financial_Aid⠀⇛ Sixteen elite universities were sued in federal court late Sunday over an alleged price-fixing scheme in which plaintiffs say the schools formed a “cartel” to limit the amount of financial aid they would each offer to low- and middle-income prospective students—breaking antitrust laws. Five students who previously attended some of the universities filed the federal lawsuit in Illinois, arguing that in defiance of legislation passed in the 1990s, at least some of the schools take families’ financial needs into account when making admissions decisions. The schools in question are part of a group called the “568 Presidents Group,” which was formed after Ivy League schools were charged with price-fixing in 1991 and is supposed to admit students on a “need-blind” basis. * § Trademarks⠀➾ o ⚓ CBS_Sued_Over_Portrayal_of_Torture_Device_on_‘Evil’⠀⇛ At the beginning of the episode, a woman referenced the device by saying, “Oh right, the God Helmet,” to which a man responds, “Actually, that’s trademarked, so we’ve been asked not to call it that.” “There is clear and convincing evidence that Defendants CBS and KING did research for their episode because Defendants knew of the God Helmet, the way the helmet works, and the trademark,” the lawsuit reads. “Therefore Defendants knew the depictions and statements would create a false impression about Plaintiff’s device and trademark.” * § Copyrights⠀➾ o ⚓ Sculptor_Of_Pillar_Of_Shame_Announces_It’s_Now_Public_Domain_So That_Anyone_Can_Make_A_Copy,_As_Chinese_Authorities_Seek_To_Destroy It⠀⇛ Last fall we wrote about how Chinese officials were looking to remove the “Pillar of Shame,” a sculpture by artist Jens Galschiøt that commemorates China’s massacre of pro-democracy demonstrators at Tiananmen Square in 1989. The sculpture was erected at the University of Hong Kong in 1997, and now that China has been wiping out every last bit of freedom in Hong Kong, the statue has been targeted as well. In our post last fall, we noted that (1) Galschiøt was threatening legal action if the statue is damaged, and (2) activists were making 3D scans of the sculpture so that it can be replicated. o ⚓ Popcorn_Time:_The_‘Netflix_of_piracy’_is_dead,_developers announce⠀⇛ Popcorn Time, a streaming service that was both beloved and hated as the “Netflix of piracy”, has been shut down. The tool gained vast popularity for the ease with which it allowed users to stream pirated films and TV shows for free. Unlike more complicated or risky services, users were able to easily access what they wanted to watch, with the ease of streaming content on Netflix. o ⚓ No,_Popcorn_Time_Is_Not_Dead_…_It’s_Unkillable⠀⇛ This led various publications including Bloomberg to declare that Popcorn Time, one of the most popular piracy services of all time, is dead and that this era of piracy is over. But it’s not that simple, and it’s silly to declare something that was designed to be unkillable as being “dead.” Just as the Pirate Bay has been “shut down” dozens of times but still exists in some version today, various versions of Popcorn Time are alive and well, and there’s no reason to think that it will ever die as long as the internet exists. This is because Popcorn Time is essentially just a BitTorrent client that has a video player built into it. BitTorrent is probably the best, earliest, most useful, and most enduring example of the decentralized internet that Web3 and cryptocurrency evangelists hope to achieve. In that sense, Popcorn Time is unkillable. Popcorn Time has “died” before and has come back, several times. o ⚓ NFT_art_sales_are_booming._Just_without_some_artists’ permission.⠀⇛ But thanks to the explosion of the NFT art market, thieves have started stealing her work at a jaw-dropping rate. Last week, an unidentified user on OpenSea, the dominant marketplace for the burgeoning NFT art market, started putting tens of thousands of listings of her work, often duplicates, up for sale. Thirty-seven of them sold before she was able to convince the platform to take them down. “They just kept taking and remaking them as NFTs,” Trier said. “It’s so flagrant. And if it happens to me, it can happen to anyone.” o ⚓ RIAA:_Yout’s_Attempt_to_Legitimize_Stream-Ripping_is_‘Wordplay’⠀⇛ YouTube-ripping service Yout.com is suing the RIAA in an attempt to have its platform declared legal in the US. The case boils down to whether YouTube has meaningful technical protection measures and whether Yout circumvents them. According to the RIAA, there is no question that Yout.com is in the wrong and it characterizes any claims to the contrary as “wordplay”. o ⚓ PrimeWire:_Hollywood_&_Netflix_Win_Court_Injunction_to_Disable Site_Domains⠀⇛ Early December, several Hollywood studios and Netflix teamed up under the banner of the MPA to sue PrimeWire, one of the longest-standing pirate streaming sites. After a hearing early this month, the court has now handed down an injunction designed to render the site inaccessible within a matter of days. o ⚓ Talks_At_Google:_Professor_Michael_Geist_–_Talks_at_Google⠀⇛ o ⚓ Twitter_Asks_Court_To_Reconsider_Order_To_Unmask_Anonymous_Critic Of_A_Billionaire_Over_Questionable_Copyright_Claims⠀⇛ On Friday we got around to posting an article about the very, very strange case of a shell company with almost no presence filing a DMCA 512(h) subpoena to Twitter seeking the identity of the person behind the @CallMeMoneyBags account, that has a history of mocking wealthy private equity bros. The subpoena came from an operation called Bayside Advisory, which registered the copyrights for a few images that MoneyBags had posted to the Twitter account, all typical social media photos, showing a young woman. The MoneyBags account implied that the woman in the photos was the mistress of a billionaire, Brian Sheth. o ⚓ Olive_Garden_At_It_Again_Enforcing_Its_IP_Instead_Of_Letting Anyone_Have_Some_Fun_With_Joke_NFTs⠀⇛ You all know about Olive Garden. It’s the chain of… oh, let’s just play along and call them Italian restaurants that have unlimited breadsticks and names of supposedly Italian offerings that appear to have gotten their names by inputting a bunch of Italian food words into a dilapidated AI program that combines them into a series of unholy dish-names. Sure, there’s “Shrimp Scampi”, but there is also “Five Cheese Ziti Al Forno” and “Lasagna Fritta”. I kid of course, but the chain and its parent company, Darden, have also found their way onto Techdirt in the past by being overly aggressive when it comes to trademark enforcement. For instance, Darden attempted to shut down the site allofgarden.com, which was dedicated to tongue in cheek reviews of the chain’s dishes. Darden later apologized for that, blaming some kind of legal bot that crawls for potential trademark infringements on the brand. ䷩ 𝚕𝚒𝚗𝚎 5468 ╒═══════════════════ 𝐃𝐀𝐈𝐋𝐘 𝐋𝐈𝐍𝐊𝐒 ═════════════════════════════════════════════╕ ⠀⌧ █▇▆▅▄▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 01.11.22⠀▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▃▄▅▆▇█ ⌧ Gemini_version_available_♊︎ ✐ Links_11/1/2022:_DragonFly_6.2.1_and_Latte_Dock_0.10.7⠀✐ Posted in News_Roundup at 5:55 pm by Dr. Roy Schestowitz 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇GNOME bluefish⦈ § Contents⠀➾ * GNU/Linux o Distributions o Devices/Embedded * Free_Software/Open_Source * Leftovers * § GNU/Linux⠀➾ o § Audiocasts/Shows⠀➾ # ⚓ Connect_Two_PCs_Together…_Or_Two_Phones.._Thanks_To_KDE!_– Kockatoo_Tube⠀⇛ # ⚓ Enterprise_Linux_Security_Episode_15_–_High_Availability_– Invidious⠀⇛ It’s frustrating when critical infrastructure encounters an issue that results in a disruption of service. High Availability is a concept that aims to help alleviate (or hopefully eliminate) such downtime, and is a very attractive goal for system administrators. In this episode, Jay and Joao discuss high availability, as well as its pros and cons. # ⚓ UbuntuDDE_Remix_21.10_overview_|_Powerful_Ubuntu_with_the most_beautiful_desktop_environment._–_Invidious⠀⇛ In this video, I am going to show an overview of UbuntuDDE Remix 21.10 and some of the applications pre-installed. # ⚓ Hands-on_with_the_Turing_Pi_2!_–_Invidious⠀⇛ The Turing Pi 2 is quite an exciting project that might even be a game-changer when it comes to homelab. With it, you can set up Raspberry Pi Compute Modules as individual servers, and even cluster them! The Turing Pi 2 gives you access to many additional features that Compute Modules wouldn’t normally have access to, such as mPCIe, SATA, and more. This gives you access to build a data-center in a box, and Jay gives it a first-look on the channel in this video. o § Kernel Space⠀➾ # ⚓ Linux_5.15.14⠀⇛ I'm announcing the release of the 5.15.14 kernel. All users of the 5.15 kernel series must upgrade. The updated 5.15.y git tree can be found at: git://git.kernel.org/pub/scm/linux/kernel/git/ stable/linux-stable.git linux-5.15.y and can be browsed at the normal kernel.org git web browser: https://git.kernel.org/?p=linux/kernel/git/stable/ linux-s... thanks, greg k-h # ⚓ Linux_5.10.91⠀⇛ # ⚓ Linux_5.4.171⠀⇛ # ⚓ Linux_4.19.225⠀⇛ # ⚓ Linux_4.14.262⠀⇛ # ⚓ Linux_4.9.297⠀⇛ # ⚓ Linux_4.4.299⠀⇛ # ⚓ New_AMD_P-State_Driver_Headlines_The_Power_Management Updates_For_Linux_5.17_–_Phoronix⠀⇛ The power management subsystem updates were sent out yesterday and already mainlined for the in- development Linux 5.17 kernel. Most notable with the power management changes for this new version of the Linux kernel is the introduction of the AMD P-State driver developed in cooperation with Valve for the Steam Deck but stands to help CPU/SoC power efficiency across Zen 2 and newer hardware. Linux PM/ACPI maintainer Rafael Wysocki of Intel sent in the power management updates yesterday to which Linus Torvalds has already merged them. # ⚓ Linux_5.17_Adds_Sensor_Monitoring_Support_To_Many_More_ASUS Motherboards_–_Phoronix⠀⇛ The Linux 5.17 hardware monitoring “HWMON” subsystem updates include the new NZXT driver, new drivers to greatly expand sensor coverage on modern ASUS desktop motherboards, temperature monitoring for next-gen AMD Zen processors, and more. Guenter Roeck submitted the HWMON feature updates on Monday for the Linux 5.17 kernel. There is a lot of notable changes this cycle, especially on the desktop side. It’s been great seeing all the desktop-related hardware monitoring enhancements in recent versions of the Linux kernel, but unfortunate that most of it has been driven by the independent open-source community rather than the hardware vendors themselves. # § Graphics Stack⠀➾ # ⚓ Radeon_RADV_Optimizations_In_Mesa_22.0_Improve_PRIME/ Hybrid_GPU_Performance_–_Phoronix⠀⇛ While RADV is not AMD’s official Radeon Vulkan driver for Linux systems, for Mesa 22.0 they have contributed a set of optimizations to improve the “DRI_PRIME” performance for hybrid GPU setups such as the growing number of AMD powered notebooks with discrete graphics. More last minute feature work to land for Mesa 22.0 ahead of its imminent feature freeze are DRI_PRIME optimizations. These improvements by AMD engineer Pierre-Eric Pelloux-Prayer are based on prior patches to the RadeonSI Gallium3D driver. # ⚓ Intel_Lands_20~40%_Performance_Optimization_For_Arc Graphics_In_Mesa_22.0_–_Phoronix⠀⇛ Intel’s pixel pipeline optimization work focused on speeding up DG2/Alchemist graphics cards with their open-source graphics driver has managed to land in Mesa 22.0. With Mesa 22.0 set to be branched this week that marks the feature freeze in preparation for releasing as stable in February, Intel managed to squeeze their Xe HP pixel pipeline optimization work into this next quarterly release. Getting this big optimization in Mesa 22.0 is important considering Intel continues to report that they will begin shipping Intel Arc discrete graphics later this quarter. # ⚓ NVIDIA_510.39.01_Beta_driver_out_for_Linux_| GamingOnLinux⠀⇛ After silently launching the RTX 3080 12GB, NVIDIA has also today put out a brand new Beta driver for Linux with version 510.39.01 now available. The interesting part is, the changelog mentions quite a number of things that were added in previous driver releases like support for the GBM API. There’s also mentions of extensions that were added in previous stable releases too. It’s likely that this will be their new “Production Branch” driver that has pulled over lots of changes from their “New Feature Branch”. # ⚓ NVIDIA_510.39.01_Linux_Beta_Brings_Vulkan_Dynamic Rendering,_AV1_VDPAU_Decode_&_More_–_Phoronix⠀⇛ In addition to announcing the GeForce RTX 3080 12GB graphics card this morning, NVIDIA has published their first public beta of the new NVIDIA 510 Linux driver series. The NVIDIA 510.39.01 Linux beta driver is available today with a variety of fixes while a bulk of the updates are on the Vulkan driver side. There is Vulkan dynamic rendering support along with an assortment of other extensions previously only found in NVIDIA’s dedicated Vulkan beta builds. Besides all of the Vulkan updates, also exciting with the NVIDIA 510 series for Linux is adding AV1 decode support to their VDPAU driver to complement the existing NVDEC AV1 support for latest-generation RTX 30 series graphics cards. NVIDIA’s 510 Linux beta also has a ReBAR indicator, updated Linux kernel support, refined GBM API support, and other updates. # ⚓ NVIDIA_releases_a_12GB_GeForce_RTX_3080_| GamingOnLinux⠀⇛ For those of you with money to burn who want a new GPU, perhaps the latest from NVIDIA will catch your eye? They’ve introduced a new model of the GeForce RTX 3080. It’s a small but noticeable upgrade to the original, and only available to a select few partners right now The bump not only ups the memory from 10GB to 12GB but also goes from 8704 to 8960 CUDA Cores, and you’re also getting a memory bus jump from 320-bit to 384-bit. You’re going to need just a little bit more power for it too, as NVIDIA say it needs 350 watts compared with the 320 on the 10GB model. # ⚓ DirectX_12_support_is_infiltrating_Linux_under_the radar [Ed: That’s just Microsoft_infiltrating_Linux_to undermine_it]⠀⇛ In the realm of PC gaming, there is an enormous industry push toward open-source graphics APIs like Vulkan. Performant, cross- platform software like Vulkan enables the incredible performance of games like Doom Eternal and allows low budget titles like Farming Simulator 22 to run on Mac OS X and Linux. o § Applications⠀➾ # ⚓ 3_Best_Free_Hard_Disk_Imaging_Software⠀⇛ The hard disk and partition imaging software take a snapshot of your hard disk so that you can restore your system at a later time to the exact same state the system was when you imaged the disk or partition. Data is probably the most important asset in today’s world. One of the worst fears of every computer user is what if the hard drive that has an enormous amount of valuable data in it corrupts suddenly? Losing files critical to your day-to-day work can be incredibly frustrating and damaging to your business. Unfortunately, you can never predict when your system might crash or get infected, and you lose your entire data to it. That is where the disk image software comes into the picture. o § Instructionals/Technical⠀➾ # ⚓ How_to_install_and_Use_NMAP_on_Fedora_35_–_NextGenTips⠀⇛ Welcome to today’s topic where we will be talking about how to install Nmap on Fedora 35. Nmap (Network mapper) is a free and open-source software for network discovery and security auditing. It is also used for network inventory services, managing service upgrades, and monitoring hosts’ downtime. Nmap is designed for bigger networks but it can also work fine with standalone hosts. Nmap suite includes an advanced GUI and results viewer called Zenmap, a flexible data transfer, redirection and a debugging tool called Ncat, a utility for comparing scan results called Ndiff, and a packet generation and response analysis tool called Nping. # ⚓ Docker_Exec_Command_–_Tutorial_with_Examples_– buildVirtual⠀⇛ The Docker exec command is a very useful command for interacting with your running docker containers. When working with Docker you will likely have the need to access the shell or CLI of the docker containers you have deployed, which you can do using docker exec. # ⚓ How_to_Install_Linux_Kernel_5.16_on_Ubuntu_20.04_LTS_– LinuxCapable⠀⇛ Linux kernel 5.16 is out with many new features, support, and security. The Linux 5.16 kernel release has a great new featured FUTEX2, or futex_watv(), which aims to improve the Linux gaming experience, growing considerably with better native Linux porting for games running Windows by utilizing Wine. Other improvements have seen write include improved write congestion management, task scheduler for CPU clusters sharing L2/L3 cache, amongst many other additions. More information can be found on the Linux 5.16 Kernel release changelog. In the following tutorial, you will learn how to install the latest 5.16 Linux Kernel on Ubuntu 20.04 LTS. # ⚓ How_to_Install_Cockpit_on_Ubuntu_22.04_|_20.04_LTS_–_Linux Shout⠀⇛ Manage your command line or graphical desktop Linux system remotely using browser by installing Cockpit on Ubuntu 22.04 Jammy Jellyfish or 20.04 Focal Fossa. Cockpit is a popular tool that comes with a web- based graphical interface for providing remote management for Linux users. RHEL based Linux distros out of the box offer this tool, and the user just need to access it. Where other users can install Cockpit directly using their system package manager. Well, Cockpit is open-source software and light in weight offers web GUI to manage Linux systems, beneficial especially to those who are running a command-line interface Linux such as CentOS and Ubuntu minimal servers. It helps advance users in quickly updating, enabling services, restarting the system, accessing Docker containers, Network, storage management, and all above the web-based terminal to issue commands remotely on a server. # ⚓ An_Introduction_To_Snowflake_Data_Warehouse_–_OSTechNix⠀⇛ In this tutorial, we will be discussing what is Snowflake Data Warehouse, Snowflake architecture, how to create a free trail account for test drive, and finally how to access Snowflake WebUI. # ⚓ Why_Use_Graphical_User_Interface_For_Version_Control_Git⠀⇛ Git is the most popular tool for version management of files and applications. Git was developed to manage open-source software source codes primarily. Github is a widespread application today among all open source contributors and freelance developers. Though Git is mainly a CUI-based application, GUI also can be configured to work with Git. For new users, the Graphical user interface is a very good way to master the Git operations. If you are also one of them who is looking for a GUI solution for Git, I have a couple of options listed below. # ⚓ The_truth_about_Linux_true_and_false_commands_|_Network World⠀⇛ True and false are common concepts in all forms of computing. They’re critical to Boolean logic after all, but did you know that true and false are also commands on Linux? Do you know how to use them? The simplest explanation is that the true command generates an exit code of 0 and that the false command generates an exit code of 1. This explanation, however, doesn’t provide much detail on how these commands can best be used. In this post, we’ll look at how the true and false commands work and how you might put them to use on the command line or in your scripts. o § Games⠀➾ # ⚓ Survival_game_Vintage_Story_gets_another_huge_upgrade_with improved_combat_|_GamingOnLinux⠀⇛ Vintage Story continues to impress with not just the rate they can churn out updates, but also how much they manage to stuff into each of them. The “Homesteading part 2 & Combat update” is out now, bringing some pretty fancy new features and so if you’ve been on the fence about it, perhaps it’s time to try it out if you’re after a different open-world survival experience. The price will also slightly increase soon. # ⚓ Homesteading_part_2_&_Combat_update,_stable!_(1.16.0)⠀⇛ This is it community. v1.16 looks stable enough to me. There are still bugs, but I estimate there’s now less than in 1.15.10. This major update contains over 300 features, tweaks and fixes. It’s been quite a monumental task to get here. As always, it would not have been possible with the incredible amounts of feedback and bug reports by you, the community. I’m very grateful for your support, thank you so much! # ⚓ Project_Zomboid_has_big_plans_for_2022_and_beyond,_with NPCs_on_the_way_|_GamingOnLinux⠀⇛ After a great many years in Early Access, Project Zomboid has finally hit the big time with it regularly seeing multiple tens of thousands of players and they have some big plans. The latest release (Build 41) took a long time, as it reworked so much of the game but it’s done and they’re moving onto the next big chunk of features and it all sounds rather exciting. One big addition that has been talked about for years is the addition of NPCs, and they’re finally coming – for reals this time. They’ve split into different teams to work on different things, one team being focused on getting NPCs all hooked up and working. # ⚓ Buck_Up_And_Drive!_is_a_retro-racing_delight_now_on_Steam_| GamingOnLinux⠀⇛ Buck Up And Drive! is a fusion of classic retro endless racing with a few fun twists, like 1v1 car fighting mode. Previously only available via itch.io, it’s screeched over to Steam now too. Since we last wrote about it in the Summer of 2021, it’s added a bunch of new content for the full release too and it’s looking like it’s quite amusing. I grew up with racers like this on the Amiga, so it speaks to me quite personally. The developer is quite funny about it too, saying “There is time to explain, I just don’t wanna.”. Not really selling us on it but the trailer below speaks enough for itself I think. # ⚓ Humble_Bundle_decides_you_need_another_launcher_for_parts of_Humble_Choice_|_GamingOnLinux⠀⇛ Humble Bundle has announced changes are coming in February for Humble Choice, so let’s go over what they’re going to be doing. First up, they’re moving back towards how it started with Humble Monthly. There’s only going to be one single tier at $11.99 / £8.99 / €9.99 – with regional pricing and more regions supported, except if you’re on the Classic plan you continue to be billed in USD. The amount of games will fluctuate, and hopefully mean they will be better and you will get access to all of them. Humble said: “Our focus is to bring you maximum bang for your buck through an expertly curated mix of awesome games. The exact number of games might vary each month, but no matter what our scouts choose, our mission is to always bring you a ton of value that’s well worth the price of admission. And as always, you can skip a month whenever you want or cancel anytime.” # ⚓ New_Steam_Games_with_Native_Linux_Clients_–_2022-01-11 Edition_–_Boiling_Steam⠀⇛ Between 2022-01-04 and 2022-01-11 there were 17 new native Linux games released on Steam with Linux clients. For reference, during the same time, there were 197 games released for Windows on Steam, so the Linux versions represent about 8.6 % of total released titles. o § Desktop Environments/WMs⠀➾ # § K Desktop Environment/KDE SC/Qt⠀➾ # ⚓ Latte_Dock_v0.10.7_|_Bug_Fix_Release⠀⇛ Let’s welcome Latte Dock v0.10.7 the 7th Official Bug Fix Release of v0.10.x branch! Go get it from, download.kde.org* o § Distributions⠀➾ # § BSD⠀➾ # ⚓ DragonFly_6.2.1_released⠀⇛ DragonFly version 6.2.1 has been released. This version has hardware support for type- 2 hypervisors with NVMM, an amdgpu driver, the experimental ability to remote-mount HAMMER2 volumes, and many other changes. The details of all commits between the 6.0 and 6.2 releases are available in the associated commit messages for 6.2.1. 6.2.0 was not released due to an error in tagging. Go to the 6.2 release page page for details on the release, and download via one of the mirrors. # § IBM/Red Hat/Fedora⠀➾ # ⚓ Anaconda_is_getting_a_new_suit_–_Fedora_Community Blog⠀⇛ It’s quite some time since we created the current GTK based UI for Anaconda: the OS installer for Fedora, RHEL, CentOS. For a long time we (the Anaconda team) were looking for possibilities to modernize and improve the user experience. In this post, we would like to explain what we are working on, and—most of all—inform you about what you can expect in the future. First, we need to express that we decided to share this information pretty early. We are currently at the stage where we have made the decisions. We have a ‘working prototype’ of the solution already available but don’t expect screenshots and demos yet! # ⚓ Anaconda_is_getting_a_new_suit_(Fedora_Community Blog)_[LWN.net]⠀⇛ The GTK-based Anaconda installer has long been used to set up Fedora, CentOS, and RHEL systems. # ⚓ Run_containers_on_Linux_without_sudo_in_Podman_| Opensource.com⠀⇛ Containers are an important part of modern computing, and as the infrastructure around containers evolves, new and better tools have started to surface. It used to be that you could run containers with just LXC, and then Docker gained popularity, and things started getting more complex. Eventually, we got the container management system we all deserved with Podman, a daemonless container engine that makes containers and pods easy to build, run, and manage. Containers interface directly with Linux kernel abilities like cgroups and namespaces, and they spawn lots of new processes within those namespaces. In short, running a container is literally running a Linux system inside a Linux system. From the operating system’s viewpoint, it looks very much like an administrative and privileged activity. Normal users don’t usually get to have free reign over system resources the way containers demand, so by default, root or sudo permissions are required to run Podman. However, that’s only the default setting, and it’s by no means the only setting available or intended. This article demonstrates how to configure your Linux system so that a normal user can run Podman without the use of sudo (“rootless”). # ⚓ IT_careers:_5_flourishing_and_4_fading_IT_skills_for 2022_|_The_Enterprisers_Project⠀⇛ There’s no dispute: An IT talent war is afoot. Nearly three-quarters (73 percent) of global technology leaders surveyed for IEEE’s Impact of Technology in 2022 and Beyond survey say recruiting technologists and filling open tech positions in the year ahead will be challenging. However, both the needs of the enterprise and the capabilities of the tech talent marketplace are a mixed bag. There are red- hot and lukewarm skills and a variety of enterprise technology requirements. Determining how best to match supply and demand has become as much art as science. This year, creating “micro career paths aligned to individual aspirations will be important,” says Yugal Joshi, a partner at Dallas, Texas-based strategic IT consultancy and research firm Everest Group. Understanding what capabilities are likely to be increasing in value and which are likely to decrease is also important, for both hiring managers and job candidates. Following are five flourishing ‒ and four fading ‒ IT skills for 2022. # ⚓ IT_leadership:_4_tips_on_achieving_your_goals_in_2022 |_The_Enterprisers_Project⠀⇛ We made it through another topsy-turvy year. Many technology leaders are reflecting on some pretty massive achievements over the past two years ‒ from turning on a dime to pivot entire organizations to remote work to accelerating their digital transformation and driving business performance through collaborative, strategic efforts. Most of us feel like we’ve been running a marathon for the past two years. It’s not surprising that disengagement, burnout, and turnover are on the rise. But all signs point to more unpredictability ahead, and we need to make sure we and our teams have the mental and physical energy to not just tackle the next challenges but also keep an eye on what’s to come. As I was thinking about who could share some insights about how to help leaders kick things off on the right note this year, one name came to mind immediately. Rhonda Vetere is a technology executive whose CIO journey has spanned multiple industries and countries. Most recently CIO and EVP for global nutrition company Herbalife, she’s also an endurance athlete, a twice-published author, a board member, a mentor, and a change agent. # ⚓ Red_Hat_and_Temenos_enable_process_automation_for digital_banking⠀⇛ Today, banking software company and Red Hat partner, Temenos, announced the integration of Red Hat Process Automation Manager into the Temenos Infinity digital banking platform. This comes as a result of a long- standing collaboration between Red Hat and Temenos and our shared commitment in helping organizations navigate this new world of digital banking by leveraging cloud-native, open source solutions. # ⚓ Kafka_Monthly_Digest:_December_2021_|_Red_Hat Developer⠀⇛ This Apache Kafka community report includes progress on Kafka 3.1.0, Kafka project milestones in 2021, and a look ahead to new features coming in 2022. # ⚓ 5_design_principles_for_microservices_|_Red_Hat Developer⠀⇛ The microservice-oriented application is a powerful model for large-scale software systems. Learn five key principles to implement one effectively. # § Debian Family⠀➾ # ⚓ ThinkPad_AMD_Debian⠀⇛ After a hiatus of 6 years, it was nice to be back with the ThinkPad. This blog post briefly touches upon my impressions with the current generation ThinkPad T14 Gen2 AMD variant. The overall hardware support has been surprisingly decent. The MediaTek WiFi driver had some glitches but with Linux 5.15+, things have considerably improved. And I hope the trend will continue with forthcoming Linux releases. My previous device driver experience with MediaTek wasn’t good but I took the plunge, considering that in the worst scenario I’d have the option to swap the card. There’s a lot of marketing about Linux + Intel. But I took a jibe with Linux + AMD. There are glitches but nothing so far that has been a dealbreaker. If anything, I wish Lenovo/AMD would seriously work on the power/ thermal issues. # § Canonical/Ubuntu Family⠀➾ # ⚓ Ubuntu_21.04_Support_Ends_Next_Week⠀⇛ For those who haven’t looked at a calendar in a while, January 20th is next week. Assuming you haven’t already, now is the time to start thinking about upgrade paths or alternative distro choices. Released last April, Ubuntu 21.04 received nine months of support from release. From January 20 it will get nothing else. No further kernel patches, no critical security fixes, and no further app updates though the standard Ubuntu repos. o § Devices/Embedded⠀➾ # ⚓ You_Can_Preorder_the_$399_Linux_PinePhone_Pro_Today⠀⇛ A new Linux phone is on the market called the PinePhone Pro Explorer Edition. It comes with an impressive range of features and a $399 price tag that’s sure to catch anyone’s attention. The new PinePhone Pro Explorer Edition is set for preorder on January 11, 2022, at 2 pm Eastern. The price is pretty reasonable for what the phone brings to the table. The default operating system for the PinePhone Pro is Manjaro Linux with KDE Plasma Mobile, but the company has made its phone completely open, which means you can run all different operating systems on it. It just comes down to the community and what kinds of creative stuff they can come up with. # ⚓ You_Can_Now_Pre-Order_the_PinePhone_Pro_Explorer_Edition Linux_Smartphone⠀⇛ Unveiled in mid-October 2021, the PinePhone Pro features a custom-made RK3399S Rockchip Hexa-Core processor that runs at at 1.5GHz, an ARM Mali T860 GPU, a gorgeous in-cell 1440×720 IPS display with 18:9 aspect ratio and Corning Gorilla Glass 4, 4GB of dual-channel 800MHz LPDDR4 RAM, and 128GB of internal eMMC flash storage. The Linux phone also features a high-fidelity 13MP rear camera, and a 5MP front-facing camera for video calls and selfies, Wi-Fi 802.11ac, Bluetooth 4.1, accelerator, gyroscope, proximity, compass, and ambient light sensors, status LED, vibration motor, Micro SD slot, pogo-pins, USB-C port for charging, and DP alt-mode video out. # § Mobile Systems/Mobile Applications⠀➾ # ⚓ How_To_Manage_Location_Sharing_on_Your_Android Device⠀⇛ # ⚓ google:_How_to_use_your_Android_smartphone_to_sign_in to_YouTube_on_smart_TVs⠀⇛ # ⚓ How_to_back_up_pictures_and_videos_on_Android_with Google_Photos_–_9to5Google⠀⇛ # ⚓ How_to_block_YouTube_ads_on_Android_and_computer_for free_–_Technology_News⠀⇛ # ⚓ Android_13_may_give_the_output_picker_a_new_coat_of paint⠀⇛ # ⚓ Google_Pixel_Android_12_bugs,_problems,_&_issues tracker⠀⇛ # ⚓ Samsung_Android_12_update:_These_devices_have_One_UI 4.0_–_9to5Google⠀⇛ # ⚓ Realme_UI_3.0_(Android_12)_update_tracker:_Eligible devices,_release_date_…⠀⇛ # ⚓ 15_Essential_Shortcuts_to_Add_to_Your_Android_Home Screen⠀⇛ # ⚓ 8_tips_to_speed_up_your_Android_phone⠀⇛ # ⚓ i.MX_8M_Plus_solderable_LGA_module_follows_OSM_Size- L_standard_–_CNX_Software⠀⇛ # ⚓ Is_it_safe_to_send_your_Android_phone_out_for_repair? |_Android_Central⠀⇛ o § Free, Libre, and Open Source Software⠀➾ # § Web Browsers⠀➾ # § Mozilla⠀➾ # ⚓ New_Year,_New_Privacy_Protection_for_Firefox Focus_on_Android⠀⇛ Have you ever signed up for a contest to win a big screen TV or a vacation to an exotic location? Or have you joined a big retailer loyalty program so you can save money? If you answered yes to either of these questions you may be exchanging your name, home address, email address, phone number and sometimes even your birthdate to companies who are building your profile with the information you freely provide. Companies use those profiles to help them make ads that are targeted at convincing you to purchase, like resurfacing an item you were shopping for. When you go online, there are similar tactics that work behind the scenes to gather information about you and your browsing behavior, and track you when you go from site to site. Mozilla has been leading the industry in privacy protections by putting our users first. Last year, we introduced one of our strongest privacy protections to date, Total Cookie Protection, to combat cross-site tracking, and we’re bringing it to Firefox Focus on Android, our simple, privacy by default companion app. Firefox Focus on Android will be the first Firefox mobile browser to have Total Cookie Protection. This will help mitigate the cross-site tracking where companies collect information about you like the sites you visit every day or the products you are searching for. # ⚓ Firefox_96_improves_noise_cancellation_on calls,_bookmarks_on_Android,_and_more⠀⇛ Firefox is one of the few web browsers left with a non-Chromium rendering engine engine, giving Mozilla the ability to try out new web features and low-level performance changes in a way that most other browsers can’t (without essentially becoming a fork, anyway). Firefox 95 rolled out last month with new security features and some macOS enhancements, and now Firefox 96 is officially available. Firefox 96 on desktop platforms (via TechDows) should be better than ever for video and audio calls, as Mozilla has “made significant improvements” to noise suppression, automatic gain control, and echo cancellation. Many communication platforms have their own noise cancellation technology, but if you happen to use a service that doesn’t, Firefox should at least help a little bit. Firefox also now uses the “Same-Site=lax” HTTP header by default when receiving data, which improves security. # § Programming/Development⠀➾ # ⚓ JavaScript_developer_screws_over_own_popular_npm packages_•_The_Register⠀⇛ Two popular open-source packages were recently sabotaged with mischievous commits, creating confusion among those using the software and exacerbating concerns about the fragility of the open-source software supply chain. The npm packages, faker.js and colors.js, were not hijacked by outsiders, as has been known to happen; rather their creator added code to the software libraries that made them malfunction. Three days ago, developer Marak Squires added a “new American flag module” to colors.js, a module to simplify printing colored text in the developer console. The new code printed the word “LIBERTY” multiple times and an ASCII-flag to the developer console and went into an endless loop. Six days ago, faker.js, used for generating fake data for API testing, also received an unexpected update: it removed the code, added the commit message “endgame,” and replaced the ReadMe file with the question, “What really happened with Aaron Swartz?” # ⚓ Qbs_1.21_released⠀⇛ The Qbs build tool version 1.21.0 is available. Qbs is a community-driven language-agnostic build automation system. It is fast and offers an easy-to-learn language based upon QML. # § Python⠀➾ # ⚓ 8_surprising_things_I_learned_about_Python_in 2021_|_Opensource.com⠀⇛ Python has long been one of the most popular programming languages, but that doesn’t mean there’s nothing new to learn. This list of Opensource.com’s most-read articles about Python is an excellent place to start. # § Shell/Bash/Zsh/Ksh⠀➾ # ⚓ Display_disk_partition_sizes_Using_awk,_grep⠀⇛ # § Rust⠀➾ # ⚓ 1.58.0_pre-release_testing_|_Inside_Rust_Blog⠀⇛ The 1.58.0 pre-release is ready for testing. The release is scheduled for this Thursday, January 13th. Release notes can be found here. * § Leftovers⠀➾ o § Science⠀➾ # ⚓ Haber-Bosch_And_The_Greening_Of_Ammonia_Production_| Hackaday⠀⇛ We here on Earth live at the bottom of an ocean of nitrogen. Nearly 80% of every breath we take is nitrogen, and the element is a vital component of the building blocks of life. Nitrogen is critical to the backbone of proteins that form the scaffold that life hangs on and that catalyze the myriad reactions in our cells, and the information needed to build these biopolymers is encoded in nucleic acids, themselves nitrogen-rich molecules. And yet, in its abundant gaseous form, nitrogen remains directly unavailable to higher life forms, unusably inert and unreactive. We must steal our vital supply of nitrogen from the few species that have learned the biochemical trick of turning atmospheric nitrogen into more reactive compounds like ammonia. Or at least until relatively recently, when a couple of particularly clever members of our species found a way to pull nitrogen from the air using a combination of chemistry and engineering now known as the Haber-Bosch process. o § Integrity/Availability⠀➾ # § Proprietary⠀➾ # ⚓ Avira_is_adding_a_crypto_miner_to_its_products_as well [Ed: They tell you that malware will protect you from malware...]⠀⇛ Et Tu, Avira? Ashwin reported last week that Norton was adding a new component, called Norton Crypto, to its security products. Norton Crypto is a crypto currency miner that will run when the system is detected as idle. It appears that Avira is doing the same. # § Security⠀➾ # ⚓ New_KCodes_NetUSB_Bug_Affect_Millions_of Routers_from_Different_Vendors⠀⇛ Cybersecurity researchers have detailed a high severity flaw in KCodes NetUSB component that’s integrated into millions of end-user router devices from Netgear, TP-Link, Tenda, EDiMAX, D-Link, and Western Digital, among others. KCodes NetUSB is a Linux kernel module that enables devices on a local network to provide USB-based services over IP. Printers, external hard drives, and flash drives plugged into a Linux-based embedded system (e.g., a router) are made available via the network using the driver. # ⚓ Samba_Releases_Security_Update_|_CISA⠀⇛ The Samba Team has released a security update to address a vulnerability in multiple versions of Samba. An attacker could exploit this vulnerability to take control of an affected system. # ⚓ Security_updates_for_Tuesday_[LWN.net]⠀⇛ Security updates have been issued by Debian (clamav, vim, and wordpress), Mageia (ghostscript, osgi-core, apache- commons-compress, python-django, squashfs-tools, and suricata), openSUSE (libsndfile, net-snmp, and systemd), Oracle (httpd:2.4, kernel, and kernel- container), SUSE (libsndfile, libvirt, net-snmp, and systemd), and Ubuntu (exiv2, linux, linux-aws, linux-aws- 5.11, linux-azure, linux-azure-5.11, linux-gcp, linux-gcp-5.11, linux-hwe- 5.11, linux-kvm, linux-oem-5.10, linux- oracle, linux-oracle-5.11, linux-raspi, linux-oem-5.13, and linux-oem-5.14). # ⚓ ‘Fully_Undetected’_SysJoker_Backdoor_Malware Targets_Windows,_Linux_&_macOS_|_Threatpost⠀⇛ The malware establishes initial access on targeted machines, then waits for additional code to execute. A brand-new multiplatform malware, likely distributed via malicious npm packages, is spreading under the radar with Linux and Mac versions going fully undetected in VirusTotal, researchers warned. # § Privacy/Surveillance⠀➾ # ⚓ Apple’s_Private_Relay_Is_Being_Blocked_– Schneier_on_Security⠀⇛ Some European cell phone carriers, and now T-Mobile, are blocking Apple’s Private Relay anonymous browsing feature. This could be an interesting battle to watch. o § Defence/Aggression⠀➾ # ⚓ CISA,_FBI,_and_NSA_Release_Cybersecurity_Advisory_on Russian_Cyber_Threats_to_U.S._Critical_Infrastructure [Ed: That's politics instead of science (like studying the underlying security of stuff)]⠀⇛ CISA, the Federal Bureau of Investigation (FBI), and the National Security Agency (NSA) have released a joint Cybersecurity Advisory (CSA) that provides an overview of Russian state-sponsored cyber operations, including commonly observed tactics, techniques, and procedures. The CSA also provides detection actions, incident response guidance, and mitigations. CISA, the FBI, and NSA are releasing the joint CSA to help the cybersecurity community reduce the risk presented by Russian state-sponsored cyber threats. o § Civil Rights/Policing⠀➾ # ⚓ IFF_assists_Amina_–_who_was_targeted_by_the_Bulli_Bai_App_– in_writing_to_the_NCW_and_Telangana_State_Women_Commission against_the_incident⠀⇛ On 1st January 2022, we saw public outrage around an application titled “Bulli Bai” that was hosted on GitHub where pictures of around 100 Muslim women, sourced from their social media accounts, were put for ‘auction’. Muslim women were targeted due to their gender and religious identity. After much furore, some arrests have been made, and the investigation is still pending. One of the victims of this incident, with IFF’s assistance, wrote to the National Commission of Women, and the Telangana State Women Commission highlighting concerns about targeted harassment, and seeking their intervention in ensuring fair investigation. She also requested the Commissions to take steps to avoid such incidents from happening in the future. o § Digital Restrictions (DRM)⠀➾ # ⚓ This_John_Deere_Tractor_Doesn’t_Need_a_Driver⠀⇛ While most autonomous vehicles are meant to travel over the highway, John Deere’s new 8R tractor shown at the 2022 Consumer Electronics Show will likely only traverse fields and it will do so without a human at the wheel. The tractor is slated to be available to farmers in late 2022 and has six pairs of stereo cameras to generate a 360 degree view of obstacles. It also uses location technology, including GPS, to ensure it is where it is supposed to be with a claimed accuracy of 1 inch. You can see a video about the beast below. According to press releases, the company has been testing the technology for at least 3 years. It is controlled by — what else? — a smartphone app that can set it to its task and monitor it remotely, allowing the farmer to monitor and control the operation from anywhere. The company claims it can prepare 325 acres in 24 hours. ䷩ 𝚕𝚒𝚗𝚎 6813 ╒═══════════════════ 𝐃𝐀𝐈𝐋𝐘 𝐋𝐈𝐍𝐊𝐒 ═════════════════════════════════════════════╕ ⠀⌧ █▇▆▅▄▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 01.11.22⠀▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▃▄▅▆▇█ ⌧ Gemini_version_available_♊︎ ✐ Links_11/1/2022:_Minted_Mozilla_and_Xwayland_22.1_Schedule⠀✐ Posted in News_Roundup at 12:04 am by Dr. Roy Schestowitz 🄸🄼🄰🄶🄴 🄳🄴🅂🄲🅁🄸🄿🅃🄸🄾🄽 ⦇GNOME bluefish⦈ § Contents⠀➾ * GNU/Linux o Distributions o Devices/Embedded * Free_Software/Open_Source * Leftovers * § GNU/Linux⠀➾ o § Server/Kubernetes⠀➾ # ⚓ What_Are_Finalizers_In_Kubernetes?_How_to_Handle_Object Deletions_–_CloudSavvy_IT⠀⇛ Kubernetes object deletions aren’t as straightforward as they seem on the surface. Deleting an object is an involved process that includes conditional checks to determine whether safe removal is possible. This is achieved by API objects called Finalizers. In this article, we’ll look at what Finalizers are, how they’re managed, and challenges they can cause when you want to delete an object. Having a better understanding of the deletion process can help you debug problems where resources don’t seem to terminate in a timely manner. # ⚓ Kubernetes_for_Finservs_–_Unlocking_success_in_digital transformations⠀⇛ The global health crisis has accelerated the digital transformation within the financial services industry. A McKinsey report highlights that “In a competitive environment of rising cost pressures, where rapid action and response is imperative, financial institutions must modernise their technology function to support expanded digitisation of both the front and back ends of their businesses.” To serve the on-demand customer, financial institutions must become agile digital enterprises focused on delivering innovative products, services, and customer experiences. Containerisation and Kubernetes have a key role to play in enabling financial institutions to meet the needs of customers at speed and scale. # ⚓ Meet_Our_Contributors_–_APAC_(India_region)⠀⇛ Welcome to the first episode of the APAC edition of the “Meet Our Contributors” blog post series. In this post, we’ll introduce you to five amazing folks from the India region who have been actively contributing to the upstream Kubernetes projects in a variety of ways, as well as being the leaders or maintainers of numerous community initiatives. o § Audiocasts/Shows⠀➾ # ⚓ So_Many_Linux_Terminal_Commands_Do_The_Same_Thing_– Invidious⠀⇛ So many terminal commands can do the same thing. For example, I often use the ‘wc’ program to get a line count of terminal output. You see me do this on distro reviews to get the number of installed packages for that distro. Well, many people like to point out that I don’t have to use ‘wc’ to get a line count. I could actually use at least half a dozen other standard core utilities to get a line count. # ⚓ Annotate_On_Your_Linux_Desktop_With_Gromit_MPX_– Invidious⠀⇛ I’ve wanted a to annotate the screen while I record videos for a while and I’ve finally found something to do the job and that’s Gromit MPX, expect to see it in future videos # ⚓ Linux_Mint_20.3_MATE⠀⇛ Today we are looking at Linux Mint 20.3, MATE edition. It is based on Ubuntu 20.04, Linux Kernel 5.4 (but you can easily upgrade it to 5.13), MATE 1.26, and uses about 1GB of ram when idling. Enjoy! # ⚓ Linux_Mint_20.3_MATE_Run_Through_–_Invidious⠀⇛ In this video, we are looking at Linux Mint 20.3, the MATE edition. # ⚓ Linux_in_the_Ham_Shack_Episode_#447:_A_Whiff_of_Ozone⠀⇛ Hello and welcome to the first short-topics episode of 2022. In this episode, the hosts discuss a new appointment at the ARRL, an inexpensive four-band QRP transceiver, a new direction for Solus, the new release of Pipewire, three popular video rendering projects, WSJT-X, WFView and much more. Thank you for listening and have a fantastic week. # ⚓ Saving_Podcasting_from_Centralization_|_LINUX_Unplugged 440⠀⇛ A new initiative uses open source to keep podcasting decentralized and add new features. We chatted with Dave Jones behind the Podcast Index. o § Kernel Space⠀➾ # ⚓ GNU_Linux-libre_5.16_Brings_More_Firmware_Cleansing, Deblobbing_–_Phoronix⠀⇛ Following yesterday’s release of Linux 5.16, the GNU folks have released GNU Linux-libre 5.16-gnu as their downstream that removes/disables any code depending upon non-open-source firmware/microcode binaries, the ability to load proprietary kernel modules, and other cleaning in the name of free software. # ⚓ Linux_kernel_5.16_now_available_with_Nintendo_Switch controller_drivers⠀⇛ The Linux kernel is at the heart of countless devices and operating systems, including Android phones and tablets, Chromebooks, desktop Linux distributions, and much more. New versions are usually released every few months, and now version 5.16 is available to try out. Linus Torvalds, the creator and lead maintainer of the Linux kernel, wrote on the kernel mailing list (via omg! ubuntu!), “Not a lot here since [v5.16 release candidate 8], which is not unexpected. We had that extra week due to the holidays, and it’s not like we had lots of last-minute things that needed to be sorted out. So this mainly contains some driver fixes (mainly networking and rdma), a cgroup credential use fix, a few core networking fixes, a couple of last-minute reverts, and some other random noise.” Perhaps the most important change in this release is a new kernel system called ‘futex2,’ short for ‘fast user mutex.’ It allows applications to create mutexes, semaphores, conditional variables, and other fast-performing synchronization mechanisms. This new feature could improve performance of games running in the Wine compatibility layer (as well as native Linux games), but Wine hasn’t implemented this yet, so we’ll have to wait and see how that turns out. # ⚓ Linux_Kernel_5.16_Delivers_Gaming_Boost,_Nintendo_Joy-Con Drivers_+_More_–_OMG!_Ubuntu!⠀⇛ The Linux Kernel just received its major update of the year — and if you’re a gamer, it’s a corker! Linus Torvalds announced the availability of Linux kernel 5.16 exactly where he always announces it: the Linux kernel mailing list. The Linux 5.16 release was delayed by week or so due to the appearance of a red-suited bearded fellow, something Torvalds notes in his announcement where he quips: “we had that extra week due to the holidays, and it’s not like we had lots of last-minute things that needed to be sorted out”. So what’s new? # ⚓ Linux_Kernel_5.16_Release_Improves_Gaming_&_Adds_Support for_New-Gen_Hardware_–_It’s_FOSS_News⠀⇛ Linux Kernel 5.16 is an interesting release for both gamers and desktop users. The changes introduced aren’t massive, but useful upgrades for users with the latest hardware and looking to get better performance in terms of gaming. Linux Kernel 5.16: What’s New? The support for the latest generation hardware from team red (AMD) and team blue (Intel) are some major additions to this release. You will notice improvements for the CPU and GPU as well. # ⚓ Linux_Kernel_5.16_Released,_Speeds_up_Wine_Games⠀⇛ Linus Torvalds has announced the release of Linux kernel 5.16. The release offers plenty of new hardware support and features to get excited about. As expected Linus Torvalds announced Linux kernel 5.16 to stable in providing the latest features, hardware support, and other improvements ahead of the new 2022 Linux distribution releases, so let’s see what’s new. Playing video games on Linux can sometimes be a difficult process. Of course, gaming platforms such as Steam, allow users to play Windows games on Linux with the help of the projects like Proton. However, there is another option – Wine. With that said, the latest version of the Linux kernel brings a new system call, futex_waitv(), which results in better gaming performance while playing both native Linux games or Windows games on Wine. Looking at the CPUs, the biggest addition is that Intel’s Advanced Matrix Extensions support is now finally stable. This new extension introduces a unique and performant approach to matrix operations that are frequently used to demonstrate the high- performance capabilities of GPUs. # ⚓ Linux_Kernel_5.16_is_out_now_bringing_the_futex2_work_to help_Linux_Gaming_|_GamingOnLinux⠀⇛ Linus Torvalds has announced the release of Linux Kernel 5.16, bringing with it the usual assortment of new hardware support and improvements everywhere. Plus, there’s something big for Linux gaming fans. The one many have no doubt been waiting for is the inclusion of Collabora’s work on FUTEX2 with futex_waitv(). This is supposed to help Linux gaming with Proton / Wine and also Native Linux gaming too. As Collabora developer André Almeida previously described it: “The use case of this syscall is to allow low level locking libraries to wait for multiple locks at the same time. This is specially useful for emulating Windows’ WaitForMultipleObjects. A futex_waitv()-based solution has been used for some time at Proton’s Wine (a compatibility layer to run Windows games on Linux). Compared to a solution that uses eventfd(), futex was able to reduce CPU utilization for games, and even increase frames per second for some games. This happens because eventfd doesn’t scale very well for a huge number of read, write and poll calls compared to futex. Native game engines will benefit of this as well, given that this wait pattern is common for games.”. # ⚓ Linux_5.17_EDAC_Driver_Brings_Support_For_New_AMD_Zen_CPUs, RDDR5_/_LRDDR5_Memory_–_Phoronix⠀⇛ With the Linux 5.17 kernel merge window formally open today, among the early pull requests sent out this morning were the Error Detection And Correction (EDAC) driver updates which is notable this time in preparation for next-generation AMD EPYC server hardware. The most exciting EDAC work for this next kernel cycle is preparation for next-generation AMD Zen processors as well as adding support for DDR5 system memory to this kernel code that deals with ECC and other error detection/correction handling. The DDR5 support within the scope of EDAC is both for Registered DDR5 and Load-Reduced DDR5 memory. This EDAC work I previously reported on last month while the news today is that it’s been submitted for debuting in Linux 5.17. # ⚓ The_Intel/AMD_Laptop_&_Tablet_Support_Improvements_For Linux_5.17_–_Phoronix⠀⇛ The x86 platform drivers area of the kernel remains very active in recent times thanks to the continued investments by Red Hat as well as growing IHV interest from the likes of Lenovo while also still having many contributions flow in from the likes of AMD and Intel. With Linux 5.17 are a number of driver additions and improvements for benefiting various x86 laptops and tablets. # ⚓ USI_Stylus,_LetSketch_Tablet_Driver,_Better_Apple_Magic Device_Support_In_Linux_5.17_–_Phoronix⠀⇛ The HID subsystem changes are rather exciting this time around of the new feature material for Linux 5.17. First up, there is USI stylus/pen support with Linux 5.17. USI is the Universal Stylus Initiative for supported styluses/pens that would work across devices supporting the standard. Google has been backing USI for Chromebooks and other major IHVs/ ISVs have been backing USI for much more convenient stylus support across devices. Intel worked out the USI standards support for the Linux kernel. # ⚓ The_Networking_Changes_For_Linux_5.17_Are_Very_Exciting_– Phoronix⠀⇛ The Linux networking subsystem updates for the in- development 5.17 kernel are quite exciting as usual given how prolific Linux is from large servers in the cloud to running on enterprise networking gear down to Linux on small IoT hardware. Not only is there a lot of hardware driver action as usual but also some key performance/latency optimizations. On the performance optimization front, there is a significant latency optimization for AF_UNIX sockets. # § Graphics Stack⠀➾ # ⚓ Xwayland_22.1_schedule⠀⇛ Hi all, It's been a year since we released Xwayland standalone and the xwayland-21.1 branch. Some new (and nice!) features found their way in the master branch of the xserver since then and the time has come to consider a new xwayland-22.1 branch and release, similar to what Michel did a year or so ago for xwayland-21.1. For that purpose I prepared the branch and posted a draft MR (not to be merged) here: https://gitlab.freedesktop.org/xorg/xserver/- /merge_requests/819 I see no reason to wait any longer so I'd propose the following schedule: * Create the branch xwayland-22.1 this week (week #2) * January 19th: 1st release candidate * February 2nd: 2nd release candidate * February 16th: 22.1.0 release if all goes well Please let me know if that schedule works for you - Also, the milestone xwayland-22.1.0 in gitlab should be used to tag issues or merge requests that need to be checked before Xwayland 22.1.0 is released. Cheers # ⚓ XWayland_22.1_Planned_For_Release_Next_Month⠀⇛ It’s been almost one year already since the last XWayland standalone feature release separate from the X.Org Server codebase itself while now the next feature installment will soon be out. Olivier Fourdan of Red Hat has laid out plans for releasing XWayland 22.1. He is stepping up to manage this next feature release and is looking at getting this release out around Valentine’s Day. o § Applications⠀➾ # ⚓ Bittorrent_client_qBittorrent_4.4.0_released_with_v2 torrent_support_–_gHacks_Tech_News⠀⇛ The developers of qBittorrent, a popular cross- platform Bittorrent client, have released qBittorrent 4.4.0 to the public. The new version introduces support for a Qt6 build for Windows 10 and newer, which promises better HiDPI compatibility according to the developers. The qBittorrent 4.4.x release branch could be the last to support Qt5, and that would also mean that it would be the last branch to support Microsoft’s Windows 7 and 8 operating systems. Releases will continue until at least Summer 2022. [...] An AppImage is offered for qBittorrent on Linux. It “uses the latest versions of Qt6, libtorrent, boost, openssl” and is created on Ubuntu 20.04. The developers note that it is not tested well at this point. # ⚓ Extension_Manager:_Search_And_Install_GNOME_Shell Extensions_Without_Using_A_Web_Browser_–_Linux_Uprising Blog⠀⇛ Extension Manager is a new, unofficial application to browse and install GNOME Shell extensions from your desktop, without having to use a web browser. Besides allowing users to search and install extensions from extensions.gnome.org, the tool can also enable or disable extensions (and display a list of installed extensions), access the extension settings, and uninstall extensions. The application is very new, having its first (0.1.0) release only a couple of days ago, so it’s still lacking in features. Extension Manager does not currently support updating extensions or translations. Also, only the first 10 results are displayed when performing a search, and there’s no option to sort the search results (e.g. by popularity, recency, etc., like on the GNOME Extensions website). Extension screenshots and comments are also not available right now. # ⚓ PostgreSQL:_pgsodium_2.0.0:_Modern_cryptography_for PostgreSQL⠀⇛ pgsodium 2.0.0 is a postgres extension that uses the libsodium library to provide high-performance, modern cryptography support for PostgreSQL 10+. # ⚓ xxd_from_vim_replaces_busybox_xxd⠀⇛ Buxybox has the ‘xxd’ utility, but a couple of times recently I found it to be inadequate. A few days ago was compiling a package, which failed due to xxd not supporting the “-i” option. So, yet another busybox applet has to get replaced with the full utility. The full xxd is in the vim package. Vim is a text- mode text editor, with quite a good imitation of a GUI. It has it’s fans. Vim is available via the package manager, but I noticed something… The vim package is compiled in OpenEmbedded, and for some unknown reason the executable is packaged as /usr/bin/vim.vim — very odd, and it breaks everything, as there are symlinks, for example / usr/bin/gvim, that point to the non-existent /usr/ bin/vim # ⚓ Support_for_Istio_1.10_has_ended⠀⇛ As previously announced, support for Istio 1.10 has now officially ended. At this point we will no longer back-port fixes for security issues and critical bugs to 1.10, so we heartily encourage you to upgrade to the latest version of Istio (1.12.1) if you haven’t already. # ⚓ FlowTrack_develops_employee_monitoring_software_for_Linux, Stealth_Mode [Ed: Tamil Nadu was known for embrace of freedom-respecting software; do we want spyware for GNU/ Linux?]⠀⇛ FlowTrack has announced its brand-new addition, a real-time employee monitoring software for Linux users. This software is touted to be the flagship solution for monitoring the internet and computer activities of employees all across the world. o § Instructionals/Technical⠀➾ # ⚓ Can_You_Run_a_Virtual_Machine_on_a_Smartphone?_How_Does_It Work?⠀⇛ Offering great convenience and security, virtual machines are a popular staple for those who like to tinker and experiment on different operating systems. As personal computers become more and more capable, the market for virtual machines grew with it. Today, PCs can run several operating systems simultaneously. The current generation of smartphones has become capable devices. Users can edit videos, play complex games at high resolutions, stream and watch 4K videos, and emulate software meant for computers. This begs the question—can you run a virtual machine on a smartphone? # ⚓ 4_Ways_to_Install_Discord_client_on_Ubuntu_22.04_|_20.04 LTS_–_Linux_Shout⠀⇛ This tutorial will help you to learn the commands and steps to install Discord client on Ubuntu 22.04 Jammy JellyFish or Ubuntu 20.04 Focal Fossa using the terminal. # ⚓ Iptables_vs_Nftables_on_Centos/RHEL_8⠀⇛ nftables will eventually replace iptables as the Linux kernel packet classification framework, more comply referred to as ‘the firewall.’ However, both are still present and will be for a while. So which one should you choose? Iptables vs Nftables, the answer is nftables, at least in the long run. # ⚓ How_to_install_Linux_Mint_20.3_“Una”_–_Invidious⠀⇛ In this video, I am going to show how to install Linux Mint 20.3 “Una”. # ⚓ How_to_Setup_MySQL_Replication_in_RHEL/Centos_–_Unixcop_the Unix_/_Linux_the_admins_deams⠀⇛ In this article, I will demonstrate how to setup MySQL replication between Master and Slave database servers. This will use two servers, one of which will replicate data from the other (Master to Slave). Use this setup if you want enhanced reliability and performance out of your systems configuration. # ⚓ How_to_Switch_Between_Users_in_Linux⠀⇛ Linux is a multi-user operating system. Whether it’s using the superuser account to execute administrative tasks or modifying the current user’s access to a certain directory, you’ll have to move between users at some point. Linux has several options for dealing with such difficulties. The obvious solution is to log out and log in as the desired user. But you have a couple of different options available through which you can switch users without logging out of the current user. In this article, you will learn about all the different ways to switch between users in the Linux system. # ⚓ How_to_Use_the_for_Loop_in_a_Linux_Bash_Shell_Script⠀⇛ Looping is an inherent art, which can make your work simpler and help you automate repetitive tasks with relative ease. Imagine a situation wherein you need to update a series of numbers or text, and instead of doing it manually, you have the system do it for you. This is the power of looping and the benefits it brings to the table for you. Loops, as a function, are available in almost every programming language; Linux’s Bash is no exception to this rule. Here’s a guide explaining how you can use the for loop in a shell script. # ⚓ How_to_configure_EC2_for_Session_Manager_–_Kernel_Talks⠀⇛ Ok this must be a very basic post for most of you and there is a readily available AWS doc for it, but I am just cutting it short to list down steps for achieving the objective quickly. You should go through the official AWS doc to understand all aspects of it but if you are on the clock then just follow along and get it set up in no time. # ⚓ Getting_Started_with_OpenSSH_Key_Management_–_Invidious⠀⇛ # ⚓ How_to_Install_and_configure_PostgreSQL_with_phpPgAdmin_on Ubuntu_20.04_LTS_–_Unixcop_the_Unix_/_Linux_the_admins deams⠀⇛ In this article, we will learn how to Install and configure PostgreSQL with phpPgAdmin on Ubuntu 20.04 LTS PostgreSQL is powerful object-relational database systems. It is a free and open-source database management system. PhpPgAdmin is a fully managed web-based administration tool for the PostgreSQL database server. # ⚓ How_to_Install_a_DEB_File_in_Linux⠀⇛ So, you finally installed Linux and when downloading your favorite app you got a file with the “.deb” extension. Now what? In this article, let’s look at the two ways you can easily install apps using DEB files on Linux. # ⚓ How_to_Install_OPcache_on_Debian⠀⇛ In this guide, we will walk you through the installation of the Zend OPcache in Debian-based Linux distributions such as Ubuntu and Mint. OpCache is an advanced caching module that operates similarly to other caching solutions. By keeping your site’s pre-compiled PHP pages in shared memory, it substantially improves PHP performance and, by extension, your website. This avoids the need for PHP to load these pages every time the server receives a request. In this guide, we will We’ll be using Ubuntu 20.04 in this post, and we’ll show you how to install and enable the module on both Apache and Nginx web servers. If you need help setting a server, please refer to one of our other guides. # ⚓ How_To_Install_Chromium_Browser_on_AlmaLinux_8_–_idroot⠀⇛ In this tutorial, we will show you how to install Chromium Browser on AlmaLinux 8. For those of you who didn’t know, Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web. The Chromium codebase is widely used, and Microsoft Edge, Opera, and many other browsers are based on the code. The key difference between Chromium and Chrome is that Chromium is open- source. This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you through the step-by- step installation of the Chromium Browser on an AlmaLinux 8. You can follow the same instructions for CentOS and Rocky Linux. # ⚓ Store_Kannel_DLR_to_MySQL/MariaDB_–_Unixcop_the_Unix_/ Linux_the_admins_deams⠀⇛ In our earlier article on Kannel we have learned about how to install Kannel. So, in that configuration, we store SMS Delivery Report (DLR) in memory of the bearerbox process. In that way, if bearerbox crashes or we take the process down, but there are still DLRs open, it may cause problem for SMS Users. So, to avoid this situation, we can use external DLR storage like MySQL database.In the previous article we used two kannel boxes: bearerbox and smsbox. To store DLR in MySQL database we will use another Kannel program: sqlbox. All communication between bearerbox and smsbox will be done via sqlbox. In operation, sqlbox will act like bearerbox for smsbox and smsbox for bearerbox. Communication between different processes can be illustrated as below # ⚓ How_To_Setup_a_Counter_Strike:_Global_Offensive_Server_on CentOS_8⠀⇛ Counter-Strikes first option is a feature called “Official Matchmaking.” This selects a Steam-owned server near you where you can play against players from all over the world. It can be entertaining because there are so many different enemy skill levels and play styles to choose from. You, on the other hand, have no influence over who joins the server or what rules and settings are in place. When you want to organise matches based on your preferences or host private games where you only play against your pals, this is an issue. The solution to this problem is to set up your own Counter-Strike: Global Offensive dedicated server. Apart from that, having your own location where you can relax and have fun is also a feasible business option. With hundreds of thousands of active players, there are bound to be a few who want their own server, which you can either build for them and rent, or simply host their matches. As there is unlimited potential, you will definitely find other methods to monetize it. In this article, I’ll show you how to setup a Counter-Strike: Global Offensive server on Centos/ RHEL based systems. # ⚓ How_to_Install_and_Set_Up_Sublime_Text_on_Linux⠀⇛ Sublime Text is a source code editor that supports various markup and programming languages. It offers features like command palette, goto anything, auto- completion, snippets, and plugins, among others, and works on all major platforms, including Linux, macOS, and Windows. If you, too, are a Sublime Text user and your recent switch to Linux has you missing the editor, or you’re just getting started with programming and wish to try out a new code editor, you’ll want to get Sublime Text running on your Linux machine. To make things easier, here’s a guide with step-by- step instructions to install Sublime Text on Linux. # ⚓ How_to_Switch_Between_Users_in_Linux⠀⇛ Linux is a multi-user operating system. Whether it’s using the superuser account to execute administrative tasks or modifying the current user’s access to a certain directory, you’ll have to move between users at some point. Linux has several options for dealing with such difficulties. The obvious solution is to log out and log in as the desired user. But you have a couple of different options available through which you can switch users without logging out of the current user. In this article, you will learn about all the different ways to switch between users in the Linux system. o § Games⠀➾ # ⚓ Dead_Cells:_The_Queen_and_the_Sea_DLC_is_out_now_| GamingOnLinux⠀⇛ Ready for another run? Dead Cells: The Queen and the Sea DLC is out now and brings with it plenty of new enemies to hack and slash your way through. # ⚓ If_you_ever_doubted_for_a_second_that_Linux_was_better_than Windows…_–_Invidious⠀⇛ All the proof you need is right here. Microsoft doesn’t care about producing a functional operating system, they only care about spying on you. Linux, on the other hand, won’t screw you over with broken updates or surveillance capitalism. # ⚓ Steam_Deck_Developer_Kit_Impressions_–_Boiling_Steam⠀⇛ We had a chance to have a quick Q&A with a developer, who asked to remain anonymous, with hands-on access to the developer kit of the Steam Deck. Because of a non-disclosure agreement (NDA), they couldn’t comment on every question that we had—instead, they could only “talk about the hardware, and the overall experience to some degree.” That being said, here’s some valuable info that you might find interesting concerning the Steam Deck, which is scheduled to start shipping next month! The first thing they mentioned was that they’re “not convinced that even with all the improvements to SteamOS 3.0 between August and October that it would have been ready by December. Yes, there’s a semiconductor shortage but I’m thinking it’s not the real reason for the delay.” So, the shipping delay could potentially be tied to the SteamOS experience needing more polish rather than (just) the chip shortage we all thought it was connected to. # ⚓ The_latest_Humble_Bundle_brings_a_few_scary_looking_treats, plus_an_indie_hits_sale_|_GamingOnLinux⠀⇛ Need a few new games to add to your collection? Perhaps readying up for the Steam Deck that should be launching next month? The Humble Dead of Winter Bundle is live – as is a nice sale on indie games. For the game bundle, none of them are native Linux games but most work really well with Steam Play Proton. # ⚓ Pixel-art_turn-based_RPG_fans_–_check_out_the_demo_for_Of Blades_&_Tails_|_GamingOnLinux⠀⇛ Interested in checking out a fresh upcoming pixel- art turn-based RPG? Of Blades & Tails looks pretty great and there’s now a demo available to try. The developer explains that it’s inspired by Diablo, Tales of Maj’Eyal and Stoneshard but there’s no permadeath so you don’t need to worry about any brutal difficulty here. That’s not to say it will be easy but it will regularly give you a save so that’s nice. On top of that the lore is inspired by the classic point & click adventure Inherit the Earth. # ⚓ Check_out_the_original_Half-Life_with_Ray_Tracing_| GamingOnLinux⠀⇛ Want to play with some real-time path tracing in Half-Life? Well, a modder is doing just that and has released a small teaser to show it off. The work is actually based on an existing effort, which will bring Vulkan Ray Tracing into Xash3D FWGS, a game engine that’s compatible with classic Valve games designed for modding. The modder going by sultim_t, mentions their work will see the source code released when the mod is ready. They said it will provide hardware accelerated ray tracing with the possibility to “calculate global illumination, reflections, refractions, soft shadows and other visual effects with interactive framerates”. # ⚓ Upcoming_GZDoom-powered_FPS_Selaco_shows_off_the_‘AI Response_System’_|_GamingOnLinux⠀⇛ As if I could get any more excited? Selaco just looks simply incredible in the footage we’ve seen previously, this new GZDoom-powered FPS is going to kick-ass. One of the big features is the FEAR-inspired AI system, where the enemies actually work together properly to take you down. They’re aware of each other, use different tactics depending on the situation and so on. It does sound exciting and the latest video shows it off a little more. Oh, you also get to flip things for cover which is clearly awesome. # ⚓ Building_a_Retro_Linux_Gaming_Computer_–_Part_8:_Shovelware with_a_Penguin_|_GamingOnLinux⠀⇛ After completing all of the boxed Quake games for Linux, I was left with indecision. So if I could not settle on a single game to play, why not try one hundred? 100 Great Linux Games is a software compilation put out by Canadian publisher Global Star Software. Made for a time of slow internet speeds and limited storage, these kinds of retail collections allowed users to explore hundreds of freeware and shareware titles from the comfort of a single CD-ROM. Even at their height at around the turn of the millennium the true value of these sets was disputed, with the moniker “shovelware” often being used to mock the tendency of these compilations to value quantity over quality. It also feels an especially odd fit for Linux, where having a wide variety of free software packaged alongside the operating system was already the norm dating back to the earliest Linux distributions. # ⚓ Steam_Deck’s_support_for_Epic’s_‘Easy_Anti-Cheat’_isn’t easy,_says_‘Warhammer:_Vermintide_2’_dev⠀⇛ The problem is actually wider than just Steam Deck, affecting any Linux based system, and dates back to September 2021, when Epic Games announced its Easy Anti-Cheat service would be available for Mac and Linux. At the time, it said that “support for the Wine and Proton compatibility layers on Linux is included”. Simply put, Wine and Proton are compatibility layers for Linux systems, allowing users to run Windows-based software. Valve’s Steam Deck will run on its own SteamOS, and use Proton to enable games to run. o § Distributions⠀➾ # § BSD⠀➾ # ⚓ DragonFlyBSD_6.2_Released_With_AMD_Graphics_Driver, Better_HAMMER2,_NVMM_Hypervisor⠀⇛ DragonFlyBSD 6.2 is now available as the latest version of this popular BSD open- source operating system. Exciting with DragonFlyBSD 6.2 is finally having modern AMD Radeon graphics support via the “AMDGPU” DRM kernel driver ported over from the Linux kernel. DragonFlyBSD 6.2 has a port of the AMDGPU Linux driver but it’s based on the Linux 4.19 state compared to upstream 5.16, which means RDNA2, Aldebaran, and other latest-generation bits haven’t landed nor any of the recent optimizations and features. DragonFlyBSD along with the BSDs at large continue to be quite behind Linux when it comes to the GPU driver support. Likewise, with DragonFlyBSD 6.2 there is working support for Intel Whiskey Lake Gen9 graphics. # ⚓ Year_in_Review:_personal_(and_GPG)_|_[bobulate]⠀⇛ So I plan on plugging away at Calamares, at FreeBSD, at making a healthy balanced dinner for my family every evening, at playing badminton when it’s possible, and just getting on with things. # § IBM/Red Hat/Fedora⠀➾ # ⚓ CentOS_Hyperscale_SIG_Quarterly_Report_for_2021Q4⠀⇛ This report covers work that happened between October 2nd and December 31st. For previous work, see the 2021Q3 report. # ⚓ Hyperscalers_Have_Been_Making_CentOS_9_Stream_More Attractive_With_New_Features_–_Phoronix⠀⇛ While many were upset by CentOS Linux 8 going premature EOL at the end of last year, for those that made the move to CentOS Stream there continues to be a love of moment in part by the recently establisher Hyperscale SIG. For CentOS Stream 9, the big hyperscalers have been working on some interesting additions/backporting to the platform. Established one year ago with backing from the likes of Twitter and Facebook was the CentOS Hyperscale SIG. Engineers from these big tech companies have been working to provide optional back-ports and other new features atop CentOS (Stream) for what otherwise isn’t readily available on that enterprise-aged software platform. # ⚓ The_Red_Hat_ecosystem:_Then_vs._now⠀⇛ Once upon a time, the Red Hat ecosystem was oriented around one platform: Red Hat Enterprise Linux. Those days are gone. While RHEL remains one pillar of Red Hat’s offerings, the Red Hat ecosystem evolved to include a variety of other products and services through acquisitions and new development. Concurrently, key facets of the relationship between Red Hat, Linux and open source have changed in important ways. Let’s examine the state of the Red Hat ecosystem in the 2020s and its relationship to the larger software market. We’ll look at the major products and services Red Hat offers — and how those services interact with third-party tools and software, such as Linux distributions based on RHEL. # ⚓ The_GDB_developer’s_GNU_Debugger_tutorial,_Part_2: All_about_debuginfo⠀⇛ In the first article of this series, Getting started with the debugger, I introduced the GNU Debugger (GDB) and walked you through its common startup options and processes. As I promised in Part 1, this article introduces the debugging information that is used to describe compiled code. # ⚓ Node.js_at_Red_Hat:_2021_year_in_review_|_Red_Hat Developer⠀⇛ As we start the new year, it’s a good time to look back on what the Red Hat Node.js team accomplished in 2021. Time goes by quickly, and it’s easy to forget the work we’ve done and the useful assets that we’ve put together. The team is involved in a variety of projects: working on the upstream Node.js releases, keeping the V8 JavaScript engine running on Power and s390 platforms, publishing content to help Node.js developers learn and adopt Node.js, and creating guidance for enterprise Node.js deployments on Red Hat OpenShift and other settings. Through our wide-ranging work, we have the opportunity to collaborate with many people from across the community and ecosystem. Here are some of the highlights from the past year. # ⚓ Create_fast,_easy,_and_repeatable_containers_with Podman_and_shell_scripts⠀⇛ Podman is a daemon-less container engine for developing, managing, and running Open Container Initiative (OCI)-compliant containers and container images. It follows industry standards to provide a robust container-management tool that you can also integrate into Kubernetes and other services as needed. [...] Containers don’t have to be strange concepts to a Linux user. Integrated into the operating system, they’re powerful tools for the busy sysadmin. In my next article, I’ll demonstrate how Podman provides tools to see information about running pods. # ⚓ How_Red_Hat’s_helping_customers_with_high_performance computing,_container_technology_and_more⠀⇛ Things are ramping for our customers in the Europe, Middle East and Africa region (EMEA). In this month’s customer success stories, we’ll share how customers in Belgium, Norway and Slovenia have counted Red Hat technologies to work better and faster as we enter the new year. Let’s see how Red Hat, along with our partner ecosystem, is helping customers keep up with competition and prepare to enter new markets with high performance computing, container technology and more. # ⚓ Hybrid_cloud:_4_trends_to_watch_in_2022_|_The Enterprisers_Project⠀⇛ If you’re pressed for time, here’s a one-word executive summary of where hybrid cloud is headed in 2022: Everywhere. That declaration requires only modest exaggeration. Roughly half (48 percent) of respondents in O’Reilly’s 2021 Cloud Adoption Survey plan to migrate 50 percent or more of their applications to a cloud in the coming year. The same survey found a healthy mix of public cloud (67 percent), private cloud (45 percent), and traditional on-premises infrastructure (55 percent) already in use. Meanwhile, 38 percent of the organizations included in Red Hat’s 2021 Global Tech Outlook already had a hybrid cloud or multi- cloud strategy in place. The report shows clear growth ahead in 2022, and more organizations plan to use three or more clouds than ever. # ⚓ Hybrid_work:_5_ways_to_make_it_work_for_you⠀⇛ In the past, going to work meant heading to a traditional office. Today, it might mean settling in at your kitchen table, traveling to a customer site, setting up at a hotel, or connecting at any number of other places. As the pandemic has proven, work can happen just about anywhere – but staying engaged and productive in all environments isn’t always easy. Here are five things you can do to help you stay focused and on-task, wherever you happen to be. # § Canonical/Ubuntu Family⠀➾ # ⚓ Linux_Mint_20.3_is_out_with_theme_adjustments, Document_Manager,_Dark_Mode_|_GamingOnLinux⠀⇛ Another brand new distribution release with Linux Mint 20.3 now officially available following the Beta release in December 2021. Not much has changed since the Beta, other than ensuring any nasty bugs didn’t slip through to provide a pretty good desktop experience for both new and experienced users who want the simple life. [...] Linux Mint 20.3 will receive security updates until 2025, with the distribution moving over to a newer Ubuntu package base later this year. # ⚓ Linux_Mint_20.3_Now_Available⠀⇛ Users of the popular Linux Mint distribution can celebrate the new year with a new release. The developers have made the latest version, 20.3 available for download. This latest iteration is based on Ubuntu 20.04.5 LTS and although it doesn’t have any game- changing new features, it does offer a lot of subtle UI tweaks and a very helpful document manager app. As for the polish, the default Mint theme doesn’t lean so much on the color green and includes larger title bars, bigger controls, and rounded corners. A number of the default apps also default to a dark theme. # ⚓ Linux_Mint_20.3_released_promising_security_updates until_2025⠀⇛ Linux Mint has released version 20.3, codenamed ‘Una,’ as a long-term support version that will receive security updates until 2025. Long-term support releases are for those who favor stability over bleeding-edge software and experimental features, so Linux Mint 20.3 is ideal for those who want to keep the same system without significant changes for years. Mint is one of the most popular and widely used Linux distributions available today, using a Ubuntu base along with a desktop environment called ‘Cinnamon’ that will be more familiar to Windows users. The reason why Mint is so popular mainly has to do with the complete out-of-the-box experience it offers, coming with proprietary format codecs, closed-source GPU drivers, and a variety of helpful multimedia apps pre- installed. These features allow users to start using the Linux distribution without installing too many other packages. # ⚓ Ubuntu_underage_girl:_child_sex_or_child prostitution?⠀⇛ In the Ubuntu underage girl scandal, the Ubuntu employee, who is also a Mozilla tech speaker, has frequently been in a position of power over women. Women know they have to please these men if they want free trips. Let’s see some examples. # ⚓ Still_the_top:_Linux_Mint_20.3_is_the_best_Linux desktop⠀⇛ As always, I like Mint’s default Gnome-2- based Cinnamon desktop. But Mint gives you a choice of many fully supported interfaces, including MATE, a Gnome-2 fork, and the ultra-lightweight Xfce. Most desktop users will be pleased with Cinnamon or MATE. But if you have older low-powered systems, Xfce is an excellent choice. Even PCs built in the 2000s can run Mint; if your PC has a 64-bit AMD/Intel processor, it can run Mint. The full version of Linux Mint requires a mere 2GB of RAM, but you can run it with a mere 1GB. This is not Windows — where running on 4GB is just asking for trouble. You’ll also need at least 20GB of disk space, but Mint recommends 100GB. Finally, you’ll need a graphics card and monitor that supports a 1024×768 resolution. In other words, you can pretty much run Mint on any PC built in the last decade. Updating to Linux Mint 20.3 from Mint 20.x is simple. You can also easily install Mint on a Windows PC and other computers. In my case, I updated to Linux Mint 20.3 from Mint 20.2 on my 2020 Dell Precision 3451. This model, which came with Ubuntu 20.04, is powered by an Intel 8-core 3GHz i7-9700 CPU. It also includes 16GB of RAM and a 512GB SSD. This is far more computer than Mint needs. I don’t recommend installing Mint 20.3 on your main PC — unless you’re an expert. It’s always better to be sure everything works well on a test box before upgrading a production machine to a new operating system, be it Linux, Windows, or anything else. This latest version of Mint is a long-term support (LTS) release (it will be supported until summer 2025). Under the hood, you’ll find the Linux kernel 5.4.0-92 and Linux firmware 1.187. For its foundation, Mint is still based on Ubuntu 20.04. Looking ahead, Mint has no plans to move off of Ubuntu 20.04 until 2023. Unlike Fedora, Linux Mint is not a cutting-edge distribution. It prioritizes stability over experimentation. o § Devices/Embedded⠀➾ # ⚓ Rock_5_SBC_features_octa-core_RK3588,_16GB_RAM,_and_triple displays⠀⇛ Radxa has opened pre-orders for a “Rock 5 Model B” SBC with the octa-core Cortex-A76/-A55 Rockchip RK3588 with 4GB ($79) to 16GB ($139) RAM plus 2.5GbE, 4x USB, HDMI-in, 2x M.2, and triple displays with 2x HDMI 2.1 and Type-C/DP. Radxa has unveiled the first board built around Rockchip’s powerful RK3588. The open-spec, Pico-ITX sized Rock 5 Model B (Rock 5B) SBC has opened for pre-orders, with $50 discounts available over the standard 4GB LPDDR4x ($129), 8GB ($149), and 16GB ($189) prices via a coupon program at Ameridroid and Allnet China, resulting in $79, $99, or $139 prices. Shipments are expected in Q2 2022. # ⚓ Low_Cost_Haptic_VR_Gloves_Work_With_Hacked_Steam_Games_| Hackaday⠀⇛ [IraqiGeek aka Lucas VRTech] has made some significant progress with building force-feedback type haptic gloves for use with steam VR games. The idea is pretty straightforward; the end of the finger is attached to a cable, which is pulled from inside a sprung-loaded spool: the kind used for hanging ID cards on. The spool body can rotate, but a peg protruding from it engages with the arm of a co-located servo motor. This produces a programmable stop position. But it is a hard stop, and it is not possible with the current hardware to detect precisely when the stop is reached, nor is it possible to control the force it is pushing with. Such features are not difficult to achieve, its just a matter of a little more development with some custom mechatronics. # ⚓ PsyLink_is_a_low-cost,_non-invasive_EMG_interface_based_on the_Nano_33_BLE_Sense⠀⇛ Non-invasive EMG interfaces have the potential to solve many problems that afflict those who suffer from a disability or simply want a more efficient way to perform a task. This is what led one maker, who goes by the name “Hut,” to create their own open source device called PsyLink. It works by measuring the minute electrical impulses that cause muscles to contract and then sending them for further processing and inferencing via a machine learning model. PsyLink’s initial prototype was based around the Nano 33 BLE Sense due to its large number of ADC pins and potential for Bluetooth connectivity. The device features a pair of aluminum foil pads attached to some wires, although this was later changed out for studs embedded within a more secure sleeve. Signals are read from the electrodes and sent through a series of filters made from op-amps and eventually to an analog multiplexer. After that, the signal is digitized by the onboard ADC and transmitted over Bluetooth Low Energy where it is then displayed in a custom desktop application. # ⚓ ’80s-style_home_computer_made_from_scratch_using_an_Arduino Due_|_Arduino_Blog⠀⇛ As a continuation from his previous Arduino BASIC interpreter project, Stefan Lenz wanted to take things a step further by recreating a home computer from the 1980s with an Arduino Due board and just a few other components. His system combines a 7″ 800 by 480px TFT screen with an SD card reader acting as the disk, along with a PS/2 port for connecting a keyboard. He began by mounting the TFT display shield to the Arduino by slotting it in place and inserting an SD card to function as the external disk since floppy drives have long since disappeared and would be far too unwieldy. After soldering some additional wires to the SPI and I2C bus pins, a level shifter was attached to two digital pins that serve as the data and clock lines for the external PS/2 port. # ⚓ Raspberry_Pi_Pico_Gets_A_Tiny_Keyboard_On_Its_Back_| Hackaday⠀⇛ With hackers and makers building custom computing devices that don’t necessarily follow conventional design paradigms, there’s been a growing demand for smaller and smaller keyboards. Many of the cyberdecks we’ve seen over the last couple of years have used so-called 60% or even 40% keyboards, and there’s been a trend towards repurposing BlackBerry keyboards for wearables and other pocket-sized gadgets. But what if you need something even smaller? Enter this incredibly diminutive keyboard created by [TEC.IST]. With 59 keys crammed into an area scarcely larger than three US pennies, it may well be the smallest keyboard ever made. The PCB has been designed to mount directly onto the back of a Raspberry Pi Pico, which is running some CircuitPython code to read the switch matrix and act as a standard USB Human Interface Device. The board design files as well as the source code for the Pico have been released on the project’s Hackaday.io page, giving you everything you need to spin up your own teeny tiny input device. o § Free, Libre, and Open Source Software⠀➾ # ⚓ BeOS_rebuild_Haiku_has_a_new_feature_that_runs_Windows_apps •_The_Register⠀⇛ The Haiku operating system has an experimental new feature, WINE. Originally a Linux subsystem, WINE can run unmodified Windows programs on other operating systems. Edward FitzGerald translated only 158 of the more than 1,200 quatrains attributed to the Persian Astronomer-Poet Omar Khayyám so there are probably more experimental operating systems out there than there are of Omar’s rubāʿiyāt in English. Very, very few such OSes ever amount to much – a few demos, some sketchy code on GitHub, and that’s the end. Haiku is different. An open-source reimplementation of former Apple exec Jean-Louis Gassée’s BeOS, the project started in 2001 and took until 2018 to make it to its first beta version. But since then, the pace has picked up a little, with Beta 2 in 2020 and Beta 3 in 2021. # ⚓ The_Apache_Weekly_News_Round-up:_week_ending_7_January 2022⠀⇛ Welcome, 2022! We hope that you have had a festive holiday season and are excited to kick off the new year. Here’s what happened over the past week # ⚓ Open_3D_Engine:_Amazon’s_Old_Clothes_Or_A_Game_Engine_To Truly_Get_Excited_About?_|_Hackaday⠀⇛ Recently Amazon announced that they would be open sourcing the 3D engine and related behind their Amazon Lumberyard game tooling effort. As Lumberyard is based on CryEngine 3.8 (~2015 vintage), this raises the question of whether this new open source engine – creatively named Open 3D Engine (O3DE) – is an open source version of a CryTek engine, and what this brings to those of us who like to tinker with 2D, 3D games and similar. When reading through the marketing materials, one might be forgiven for thinking that O3DE is the best thing since sliced 3D bread, and is Amazon’s benevolent gift to the unwashed masses to free them from the chains imposed on them by proprietary engines like Unity and Unreal Engine. A closer look reveals however that O3DE is Lumberyard, but with many parts of Lumberyard replaced, including the renderer still in the process of being rewritten from the old CryEngine code. # ⚓ Libre_Arts_–_Looking_back_at_2021,_looking_forward_at 2022⠀⇛ Let’s have a closer look at main events of 2021 and what’s coming for us in 2022. Obligatory disclaimer: I only talk about projects that I track more or less closely. There are many more great projects out there, and I’d love to hear your thoughts about those! [...] The other reason is that, with a project like GIMP, it’s hard to do just one thing. The team is constantly bombarded with requests that are mostly doable once you have a team of 10 to 20 full-time developers, which is light years away from where GIMP is now. Which results in a lot of running around between under-the-hood work, UX fixes, featurettes, better file formats support etc. So you give everyone a little of what they want but you end up delaying an actual release because the big stuff still needs to happen. # § Web Browsers⠀➾ # § Mozilla⠀➾ # ⚓ Linux_Mint_Sells_Out_for_Mozilla_Money [Ed: Trolling by Fagioli fed by Slashdot]⠀⇛ # ⚓ Linux_Mint_sells_out_for_Mozilla_money_—_Google becomes_default_search_in_Firefox⠀⇛ The Linux Mint developers explain, “For Mozilla, the goal is to make Firefox work the same way across all platforms to ease maintenance and simplify development and bug fixing. With these changes Firefox will give the same experience in Linux Mint as it does in other operating systems. For us, this change means a tremendous simplification in terms of maintenance and development. We used to build Firefox ourselves using Ubuntu’s packaging (which is set to be discontinued as Ubuntu is moving towards snap). We now package the Mozilla version of Firefox instead.” # ⚓ Linux_Mint_strikes_deal_with_Mozilla_to_keep Firefox_as_default_web_browser⠀⇛ Linux Mint has been one of the most popular desktop Linux distributions for years, combining an Ubuntu base with different desktop environments and built-in applications. Linux Mint 20.3 was just released last week with several new features, and now the operating system is partnering with Mozilla to keep Firefox as the default web browser. Linut Mint is based on Ubuntu and uses Ubuntu’s package repositories, but Canonical (the company behind the operating system) switched Firefox to a ‘Snap’ container package for last year’s Ubuntu 21.10 update. Even though Snap packages are generally more secure than non-containerized Linux software, and it leads to easier distribution across many different Linux distributions, not everyone likes Snap packages. The Linux Mint project in particular has fought against Snap, citing a lack of transparency from Canonical and the centralized nature — no one can run a Snap-powered app store except for Canonical. # ⚓ Linux_Mint_is_reverting_Firefox_to_Mozilla config_after_partnership_signed⠀⇛ Mozilla and Linux Mint have signed a partnership that will see the Linux distribution dump its customisation of the web browser, in favour of rolling out the defaults chosen by Mozilla. “In the past Linux Mint used its own default settings and configured Firefox in a specific way. Most of this configuration is abandoned to go back to Mozilla defaults,” distribution founder Clement Lefebvre wrote. Among the change will be the default start page no longer pointing to a page controlled by Mint; search engines switching from Linux Mint search partners including Yahoo and DuckDuckGo to Mozilla search partners including Google, Amazon, Bing, DuckDuckGo, and Ebay; and patches from Mint upstream distributions Debian and Ubuntu being dropped. The relationship between Mozilla and Mint is commercial and technical, with hopes that Mint users will be able to update the browser from within Firefox, similar to how Windows users do, rather than needing to use the distribution’s package manager. # ⚓ Linux_Mint_signs_a_partnership_with_Mozilla⠀⇛ Mozilla is one of the Open Source greatest champions of all time. It played a unique role throughout history in the promotion of Free Software and greatly contributed to the success of Linux. In the 90’s Netscape Navigator was the most popular Web browser but it quickly lost its lead to Internet Explorer which came bundled with Microsoft Windows. The Web was changing rapidly, Explorer was dominant (it reached 95% user share in 2003) to the point where most websites no longer cared about compatibility with other browsers or operating systems and we got in a situation where Microsoft de-facto dictated Web standards. # ⚓ Linux_Mint_Announces_Major_New_Partnership_with Mozilla⠀⇛ Announced today, the commercial tie-up means Firefox will continue to remain Linux Mint’s default web browser but, crucially, no longer ship with Mint- specific customisations. Don’t panic unnecessarily; Mint say Firefox will continue to be distributed as a .deb package through the official Linux Mint repositories. # ⚓ Mozilla_partners_with_The_Markup_to_launch Rally_study_into_Facebook’s_tracking_and_data collection_practices⠀⇛ Browser maker Mozilla today announced a partnership with The Markup, the non- profit newsroom that investigates how technology is reshaping society, on a research project to provide insights into and data about a space that’s opaque to policymakers, researchers and users themselves. By joining Mozilla and The Markup’s “Facebook Pixel Hunt” in Firefox, people can help Rally and The Markup unravel how Facebook’s tracking infrastructure massively collects data about people online – data that is used to target ads, tailor content recommendations and spread misinformation – all by simply browsing the web. The Markup is the newest partner for Rally, the privacy-first data-sharing platform that was created by Mozilla in 2021 to take back control from platforms that are not transparent about how they use people’s data and make it very difficult for independent outside research to take place. Rally is a novel way for people to help answer systemic questions by contributing their own browsing behavior data, putting it to work as part of a collective effort to solve societal problems that start online and that we have not been able to investigate this way before. # ⚓ Adwaita_Fan?_Check_Out_This_Epic_Theme_for Firefox_–_OMG!_Ubuntu!⠀⇛ Do you want a Firefox theme that makes the browser better integrate with the vanilla GNOME desktop? If you do, check out the Firefox GNOME Theme on GitHub. It’s an all-in-one transformation pack that works with modern versions of the browser. When applied it makes Firefox look and feel like a regular GTK app adhering to GNOME’s Adwaita theme. We’re talking the same gradients, colours, and button shapes as Adwaita, and it supports Adwaita’s standard light look as well as it’s dark mode. # ⚓ Digital_Checklist:_How_to_Start_2022_Right [Ed: Who wrote that blog post for Mozilla? “Prior to Mozilla, Lindsey headed up corporate-level marketing for Facebook Inc.” as per this_page and she_is_not_alone.]⠀⇛ For most, the New Year marks a time to reflect, reset and re-prioritize. While learning a new language, creating a budget or starting up a new hobby have become staples of our New Years’ Resolutions, as our lives increasingly shift online, it’s important we also use this opportunity to reassess our digital habits. Whether you received a new device this holiday season or just want to make sure you’re protecting yourself online, there’s no better time to partake in some New Year’s cyber cleaning. To get 2022 off to a strong start, here’s a helpful and easy checklist to help you tidy up your browsing, tighten your security and ensure your online health isn’t left at the wayside. # § Funding⠀➾ # ⚓ Funding_software_supply_chains_–_staktrace.com⠀⇛ An author of popular free software packages intentionally inserted infinite loops into his code to break downstream users, as a form of protest. It’s not the first time this sort of thing has happened, and it won’t be the last. In this particular case I would say that both primary parties are in the wrong. To the author: if you make your software freely available, obviously people are going to use it without paying for it. Why would you expect anything else? To the users: if you use some random piece of software in your code without verifying it and just keep blindly updating it, obviously stuff like this is going to happen. Why would you expect anything else? To me it seems like there’s no strongly defined interface here, on either side. So you have to be prepared to accept any kind of behavior from the other party. What’s surprising is that this doesn’t happen more frequently. # § Programming/Development⠀➾ # ⚓ Don’t_mix_URL_parsers_|_daniel.haxx.se⠀⇛ There is still no common or standard URL syntax format in sight. A string that you think looks like a URL passed to one URL parser might be considered fine, but passed to a second parser it might be rejected or get interpreted differently. I believe the state of URLs in the wild has never before been this poor. # § Perl/Raku⠀➾ # ⚓ Is_Perl_dead?_@Randal_L._Schwartz_on_Dart_and Flutter_@Code_Maven_–_Invidious⠀⇛ # ⚓ TWC_146:_10K_Prime_and_CW_Trees_|_Bruce_Gray_ [blogs.perl.org]⠀⇛ In which we leap tall primes in a single bound, mis-take a tree, test percussion, and find the limits of a Curious Module. Task 1: 10001st Prime Number – One- liners (expanded) in Raku and Perl. Task 2: Curious Fraction Tree – Solutions in Raku and Perl (with 200+ tests), and another Perl solution using a CPAN module. # § Rust⠀➾ # ⚓ December_of_Rust_2021,_Part_1:_A_Little Computer_|_The_Mad_Scientist_Review⠀⇛ In the beginning of December I read Andrei Ciobanu’s Writing a simple 16- bit VM in less than 125 lines of C. Now, I’ve been interested in virtual machines and emulators for a long time, and I work tangential to VMs as part of my day job as a JavaScript engine developer for Igalia. I found this post really interesting because, well, it does what it says on the tin: A simple VM in less than 125 lines of C. Readers of this blog, if I have any left at this point, might remember that in December 2020 I did a series of posts solving that year’s Advent of Code puzzles in order to try to teach myself how to write programs in the Rust programming language. I did say last year that if I were to do these puzzles again, I would do them at a slower pace and wouldn’t blog about them. Indeed, I started again this year, but it just wasn’t as interesting, having already gone through the progression from easy to hard puzzles and now having some idea already of the kinds of twists that they like to do in between the first and second halves of each puzzle. # ⚓ Blink_An_LED_On_A_PIC32_With_Rust,_Easily_| Hackaday⠀⇛ [Harry Gill] has you covered with his primer on programming a PIC32 with Rust, which will have you blinking an LED in no time. [Harry] admits that when he got started, his microcontroller programming skills were a bit rusty, so don’t let yourself think setting this up is beyond your abilities. If you have a working knowledge of the basics of microcontroller programming, you’ll be fine. [Harry] had to jump through a few hoops to get the right tools working, but thoughtfully documented the necessary steps, and provides a bare minimum hardware list. # § Java⠀➾ # ⚓ Lesson_from_Log4j:_Open-source_software improvements_need_help_from_feds⠀⇛ * § Leftovers⠀➾ o ⚓ Mining_And_Refining:_Copper,_The_Metal_That_Built_Technology_| Hackaday⠀⇛ It’s hard to reckon exactly when in history humans became a technological species. Part of that is because the definition of technology is somewhat subjective; if you think making a stick pointy enough to grub roots from the dirt or to poke enough holes in an animal to convince it to let you eat it is technology, then our engineered world goes back a long, long way indeed. But something about pointy sticks just doesn’t seem transformative enough, in the sense of fundamentally changing a naturally occurring material, to really count as a technological line in the sand. To cross that line, it really seems like the use of metals should be part of the package. Even if that’s the case, our technological history still goes pretty far back. And copper ends up being one of the metals that started it all, about 11,000 years ago, when our ancestors discovered natural deposits of the soft, reddish metal and began learning how to fashion it into the tools and implements that lifted us out of the Stone Age. Our world literally cannot run without copper, forming as it does not only the electric-motor muscles of civilization, but also the wires and cables that form the power and data grids that stitch us together. Ironically, we are just as dependent on copper now as we were when it was the only metal we could make tools from, and perhaps more so. We’ll take a look at what’s involved in extracting and purifying copper, and see how the methods we today use are not entirely different from those developed over seven millennia ago. o ⚓ Peek_Behind_The_Curtain_Of_This_Robotic_Mouse_|_Hackaday⠀⇛ At first glance, this little animatronic mouse might seem like a fairly simple affair. A door opens, our rodent friend pops its head out, looks around, and goes back in. But just like in The Wizard of Oz, a strategically placed curtain is hiding the impressive array of gadgetry that makes the trick possible. Creator [Will Donaldson] has put together a fantastic write-up of just what went into creating this little fellow, and we think you’ll be surprised at just how serious the mechanics involved are. Take for example the rig that provides horizontal motion with a NEMA 17 stepper motor mated to a 200 mm leadscrew and dual 8 mm rail assembly that would like right at home as part of a 3D printer. o ⚓ Powering_Up_An_Original_Apple_I_After_Three_Decades_In_A_Museum_| Hackaday⠀⇛ The Apple I is the stuff of legend. Designed and marketed in 1976 by Steve Wozniak and Steve Jobs, it was the very first product released by what would become today’s multi-trillion-dollar manufacturer of iPhones and iMacs. With about 60 original ones known to exist today, prices at auction are commonly in the $300,000 range, while confirmed working ones are even more valuable. The Heinz Nixdorf Museumsforum (HNF), a computer museum in the German city of Paderborn, is fortunate enough to have an original Apple I in its collection. Although it has been there since 1996, it was always on static display and had never been powered on. In fact, it was unknown whether it would even work, and with it being the most valuable exhibit in the entire museum, simply firing it up would be a seriously risky project. o § Health/Nutrition/Agriculture⠀➾ # ⚓ Even_Symptom-Free,_People_With_Omicron_Much_More_Likely_to Spread_COVID:_Studies⠀⇛ /li> o § Integrity/Availability⠀➾ # § Proprietary⠀➾ # ⚓ Microsoft:_powerdir_bug_gives_access_to_protected macOS_user_data⠀⇛ # ⚓ CISA_Adds_15_Known_Exploited_Vulnerabilities_to Catalog [Ed: Proprietary software for the most part here...]⠀⇛ CISA has added 15 new vulnerabilities to its Known Exploited Vulnerabilities Catalog, based on evidence that threat actors are actively exploiting the vulnerabilities listed in the table below. These types of vulnerabilities are a frequent attack vector for malicious cyber actors of all types and pose significant risk to the federal enterprise. # ⚓ One_More_Trip_Around_the_Sun⠀⇛ Replace my reliance on iPad and Apple Pencil. Would be nice to use a small screen tablet on my Fedora instead. Just plug it when I need it, run GIMP or Aseprite in the same time it takes me with Procreate and Pixaki. # ⚓ Avira_is_adding_a_crypto_miner_to_its_products_as well⠀⇛ Et Tu, Avira? Ashwin reported last week that Norton was adding a new component, called Norton Crypto, to its security products. Norton Crypto is a crypto currency miner that will run when the system is detected as idle. It appears that Avira is doing the same. # ⚓ Microsoft_acknowledges_that_the_KB5008212_update breaks_Outlook_search_in_Windows_10 [Ed: Even dedicated Microsoft boot lickers such as Sofia Wyciślik-Wilson seem to have their patience tested by Microsoft's incompetence]⠀⇛ Microsoft has acknowledged an issue following the installation of the KB5008212 update. The problem causes email searching in Outlook to break, and no fix is currently available. To let people know about the issue, and to provide details of a workaround, Microsoft has published a support document entitled “Outlook Search not showing recent emails after Windows update KB5008212″. # § Security⠀➾ # ⚓ US_Police_Warn_of_Parking_Meters_with_Phishing QR_Codes⠀⇛ In a hurry to park your car? Don’t want to fumble around in your pocket to find cash for the parking meter, and don’t have the correct payment app installed on your phone? Well, think carefully before rushing to scan the payment QR code stuck on the side of the meter – it may well be an attempt by fraudsters to phish your financial information. Police are warning that they have discovered bogus QR codes stuck onto public parking meters across Austin, Texas – a city where parking meters don’t display QR codes, and only accept payment via coins, cards or a smartphone app. # ⚓ Fake_QR_Codes_on_Parking_Meters_–_Schneier_on Security⠀⇛ The City of Austin is warning about QR codes stuck to parking meters that take people to fraudulent payment sites. # ⚓ Apache_Software_Foundation_Security_Report: 2021_:_The_Apache_Software_Foundation_Blog⠀⇛ Synopsis: This report explores the state of security across all of The Apache Software Foundation projects for the calendar year 2021. We review key metrics, specific vulnerabilities, and the most common ways users of ASF projects were affected by security issues. [...] The security committee of The Apache Software Foundation (ASF) oversees and coordinates the handling of vulnerabilities across all of the 350+ Apache projects. Established in 2002 and composed of all volunteers, we have a consistent process for how issues are handled, and this process includes how our projects must disclose security issues. Anyone finding security issues in any Apache project can report them to security@apache.org where they are recorded and passed on to the relevant dedicated security teams or private project management committees (PMC) to handle. The security committee monitors all the issues reported across all the projects and keeps track of the issues throughout the vulnerability lifecycle. The security committee is responsible for ensuring that issues are dealt with properly and actively reminds projects of their outstanding issues and responsibilities. As a board committee, we have the ability to take action including blocking their future releases or, worst case, archiving a project if such projects are unresponsive to handling their security issues. This, along with the Apache License v2,0, are key parts of the ASF’s general oversight function around official releases, allowing the ASF to protect individual developers and giving users confidence to deploy and rely on ASF software. The oversight into all security reports, along with tools we have developed, gives us the ability to easily create metrics on the issues. Our last report covered the metrics for 2020. # § Fear, Uncertainty, Doubt/Fear-mongering/ Dramatisation⠀➾ # ⚓ Linux_version_of_AvosLocker_ransomware targets_VMware_ESXi_servers [Ed: People are not meant to install this and it targets proprietary software anyway. FUD.]⠀⇛ AvosLocker is the latest ransomware gang that has added support for encrypting Linux systems to its recent malware variants, specifically targeting VMware ESXi virtual machines. While we couldn’t find what targets were attacked using this AvosLocker ransomware Linux variant, BleepingComputer knows of at least one victim that got hit with a $1 million ransom demand. Several months ago, the AvosLocker gang was also seen advertising its latest ransomware variants, the Windows Avos2 and AvosLinux, while making a point of warning affiliates not to attack post-soviet/CIS targets. “Out new variants (avos2 / avoslinux) have the best of both worlds to offer: high performance & high amount of encryption compared to its competitors,” the gang said. # § Privacy/Surveillance⠀➾ # ⚓ Google_and_Facebook_fined_for_cookies practices⠀⇛ The CNIL, France’s data regulator, fined Meta (Facebook) and Google for violating the GDPR for a total of 210M€. [...] Interestingly, the French regulator issued the fine to 2 Irish companies. Usually, the rule has been that the regulator of the nation where the company is located is going to be the one issuing the fines. The CNIL reason behind those fines is that French people are being affected. This fact completely turns the table around. If the legitimacy of CNIL’s standing is proved, the balance of power between the European data regulators might completely change. Since the majority of big companies are located in Ireland, the Irish data regulator (DPC) should be the one issuing the majority of fines. Though, many say that the DPC is not issuing enough fines because Ireland wants to keep good relationships with the companies located in the country. Fines such as this one could change the paradigm to one where any country will be able to fine any company. At that point, it will be apparent if some countries have been more strict than others in the past and, in a way, make it a plain field since the company’s incorporation country will not grant it additional or reduced liabilities. o § Internet Policy/Net Neutrality⠀➾ # ⚓ #KeepItOn:_people_in_Kazakhstan_have_the_right_to_internet access⠀⇛ The government of Kazakhstan has no right to implement ongoing, arbitrary internet shutdowns and blockings as part of its intensifying campaign of state-sponsored violence against the population. Access Now and the #KeepItOn coalition are calling for open, accessible internet across the country, and a commitment from authorities to ensure it is upheld moving forward — including during protests and times of unrest. “By manipulating internet access — shutting it off one day, allowing limited access the next — the government of Kazakhstan is exerting its authority over the country,” said Anastasiya Zhyrmont, Eastern Europe & Central Asia Regional Outreach Coordinator at Access Now. “That’s not how things are allowed to work. Governments should empower people through access to information and communication, not threaten to ‘shoot to kill,’ then disconnect a population exercising its right to protest.” On January 2, 2022, as people protested the government’s changes to liquefied petroleum gas price caps in the city of Zhanaozen, individuals began reporting difficulty in accessing the internet. Since then, government-mandated internet blockings and shutdowns have been imposed in other regions, and range from targeted attacks on social media platforms such as WhatsApp, Telegram, and Signal, to complete nation-wide internet shutdowns of varying time frames in different regions on January 4, 5, 6, and 7. Reports indicate that the internet is accessible today, Monday, January 10. ╘══════════════════════════════════════════════════════════════════════════════╛ ¶ Lines in total: 9328 ➮ Generation completed at 02:42, i.e. 63 seconds to (re)generate ⟲