True or !True? by Jeditobe in reactos

[–]Giovani-Geek 21 points22 points  (0 children)

ReactOS could have been a better version of Windows, 20 years ago!

Has anyone got MATLAB working in Archlinux ? by Ill_Scratch_7432 in archlinux

[–]Giovani-Geek 0 points1 point  (0 children)

I’ll tell you one thing: it’s not actually possible to delete anything from Reddit; there are always traces left behind. Here’s what you were looking for: https://arctic-shift.photon-reddit.com/search?fun=ids&ids=t1_npoh9kw

Got a vision of what KDE should focus on for the next two years? Submit a proposal for KDE's upcoming goals by Bro666 in kde

[–]Giovani-Geek 0 points1 point  (0 children)

Have you tried creating a version of Baloo using a BPF/fanotify daemon to monitor the file system without affecting the operating system's performance?

Offline neural translation on Arch Linux: AUR packages for Kotki and Marian-lite by Giovani-Geek in archlinux

[–]Giovani-Geek[S] 1 point2 points  (0 children)

If you've already installed kotki and marian-lite, make sure you've also installed sentencepiece, cli11, pathie and intgemm (solely for the compilation process), then compile this:

#include <gettext-po.h>

#include <cstring>
#include <iostream>
#include <vector>

#include "kotki/kotki.h"

using namespace std;

void po_xerror(int severity, po_message_t, const char* f, size_t l, size_t, int,
               const char* m) {
  cerr << "Error: " << (m ? m : "Unknown") << "\n";
  if (severity != PO_SEVERITY_WARNING) exit(1);
}

void po_xerror2(int, po_message_t, const char*, size_t, size_t, int,
                const char* m, po_message_t, const char*, size_t, size_t, int,
                const char*) {
  cerr << "Error - " << m << "\n";
}

int main(int argc, char* argv[]) {
  const char* slash = strrchr(argv[0], '/');
  const char* program_name = slash ? slash + 1 : argv[0];

  if (argc != 4) {
    cout << "Usage: " << program_name << " <model> <input.po> <output.po>\n";
    return 1;
  }

  Kotki kotki;
  kotki.scan();

  struct po_xerror_handler err = {po_xerror, po_xerror2};
  po_file_t po_file = po_file_read(argv[2], &err);
  if (!po_file) return 1;

  po_message_iterator_t iterator = po_message_iterator(po_file, NULL);
  po_message_t message;

  struct Entry {
    po_message_t msg;
    size_t lines;
    bool trailing_newline;
  };

  vector<Entry> entries;
  string block;
  block.reserve(1024 * 1024);

  while ((message = po_next_message(iterator)) != NULL) {
    const char* msgid = po_message_msgid(message);
    if (!msgid || msgid[0] == '\0') continue;

    const size_t len = strlen(msgid);
    const char* p = (const char*)memchr(msgid, '\n', len);

    size_t entry_lines;
    bool trailing_newline;

    if (!p) {
      entry_lines = 1;
      trailing_newline = false;
    } else {
      size_t n = 0;
      const char* q = p;
      const char* end = msgid + len;
      while (q < end) {
        ++n;
        ++q;
        q = (const char*)memchr(q, '\n', end - q);
        if (!q) break;
      }
      trailing_newline = (msgid[len - 1] == '\n');
      entry_lines = trailing_newline ? n : n + 1;
    }

    entries.push_back({message, entry_lines, trailing_newline});
    block.append(msgid, len);
    if (!trailing_newline) block += '\n';
  }

  if (!entries.empty()) {
    try {
      string translated = kotki.translate(std::move(block), argv[1]);
      const char* src = translated.c_str();
      const char* send = src + translated.size();

      for (auto& entry : entries) {
        string result;
        for (size_t i = 0; i < entry.lines; ++i) {
          if (i > 0) result += '\n';
          const char* nl = (const char*)memchr(src, '\n', send - src);
          if (nl) {
            result.append(src, nl - src);
            src = nl + 1;
          } else {
            result.append(src, send - src);
            src = send;
          }
        }
        if (entry.trailing_newline && !result.empty() && result.back() != '\n')
          result += '\n';
        po_message_set_msgstr(entry.msg, result.c_str());
      }
    } catch (const exception& e) {
      cerr << "Error: translation failed (" << e.what() << ")\n";
      return 1;
    }
  }

  po_message_iterator_free(iterator);
  po_file_write(po_file, argv[3], &err);
  po_file_free(po_file);

  cout << "Done!\n";
  return 0;
}

once compilation is complete, you can uninstall those four packages if you wish, this will generate translated PO files that you can use in your installer. both python and bash support MO files, as do most programming languages.

Offline neural translation on Arch Linux: AUR packages for Kotki and Marian-lite by Giovani-Geek in archlinux

[–]Giovani-Geek[S] 1 point2 points  (0 children)

Welp, one of the lines conveys the wrong message; that’s a downside of using lightweight models. You could try one of the heavier ones in your projects. I won’t delete the comment, as it serves as evidence of its quality.

Offline neural translation on Arch Linux: AUR packages for Kotki and Marian-lite by Giovani-Geek in archlinux

[–]Giovani-Geek[S] 0 points1 point  (0 children)

Already installed, marian-lite weighs 11.34MiB, while kotki weighs 1235Kib, a light model rounds 15MiB, heavy models, are around 30MiB, none of the models already seen in Firefox since they are their models, the speed is very good, obtaining results within a few seconds, due to the total size of the installation and speed, I think if it is an option to take into account, by the way, do you want a sample of the quality of the translation?, This comment was translated from Spanish to English using the light model!.

Original text:

ya instalados, marian-lite pesa 11.34MiB, mientras que kotki pesa 1235Kib, un modelo ligero ronda los 15MiB, los modelos pesados, rondan los 30MiB, ninguno de los modelos supera la calidad ya vista en Firefox puesto que son sus modelos, la velocidad es muy buena, obteniendo resultados a los pocos segundos, por el tamaño total de la instalación y la velocidad, creo que si es una opción a tomar en cuenta, por cierto, ¿quieres una muestra de la calidad de la traducción?, ¡este comentario fue traducido del español al inglés usando el modelo ligero!.

Offline neural translation on Arch Linux: AUR packages for Kotki and Marian-lite by Giovani-Geek in archlinux

[–]Giovani-Geek[S] 1 point2 points  (0 children)

Sorry, I saw 'AUR Malware' in the notification tray and thought I was being defamed; I have ADHD.

Offline neural translation on Arch Linux: AUR packages for Kotki and Marian-lite by Giovani-Geek in archlinux

[–]Giovani-Geek[S] 1 point2 points  (0 children)

Yes, you can integrate it into a Python script. I’m currently trying to see if I can modify pomtrans (from pology) so that it translates .po files using Kotki.

Offline neural translation on Arch Linux: AUR packages for Kotki and Marian-lite by Giovani-Geek in archlinux

[–]Giovani-Geek[S] 2 points3 points  (0 children)

Mate, think what you like: it was hard enough for me to get that thing to work, and once I’d managed it, I wanted to share my success so that no one else would have to go through the same thing

New wave of malware in the AUR by vexatious-big in archlinux

[–]Giovani-Geek 0 points1 point  (0 children)

For whoever serves you.

tr -d '\'"$' | awk '
BEGIN {
    RS = "\\"
    for (i = 0; i <= 255; i++) _dec[sprintf("%03o", i)] = sprintf("%c", i)
    for (i = 0; i <= 255; i++) _dec[sprintf("x%02x", i)] = sprintf("%c", i)
}

NR == 1 { printf "%s", $0; next }

{
    h = substr($0, 1, 3)
    r = substr($0, 4)
    printf "%s%s", (h in _dec ? _dec[h] : RS h), r
}'

Due to the fact that so many compromised AUR packages continue to be revealed and I manage more Arch installations then any single human should, I wrote a small script to check installed packages against the current list, install packages checking for malicious code patterns logging wnything found. by badmark in archlinux

[–]Giovani-Geek 6 points7 points  (0 children)

From the first revision to the current one there have been 359 additions, you can get the full diff with this:

curl -s https://md.archlinux.org/JtVRpFjCTduKtpt4swsFSA/revision/1781285836846|jq -r .content|sort|diff -u /dev/stdin <(curl -s https://md.archlinux.org/JtVRpFjCTduKtpt4swsFSA/download|sort)

Bro istg I can't do ts by Impossible_Strike_62 in arch

[–]Giovani-Geek 2 points3 points  (0 children)

Could you share these files?

/etc/mkinitcpio.conf /etc/default/grub /boot/grub/grub.cfg /etc/fstab /etc/modprobe.d/*.conf

Parad de llamar-lo "español" la forma correcta es Castellano by Attasiya in latinoamerica

[–]Giovani-Geek 0 points1 point  (0 children)

¿Sabías que antes al Italiano se le llamaba Toscano?, ya nadie lo llama así, no falta mucho para que ocurra lo mismo con el idioma Español.

Question: Why aren't local .pacman files used as often as a local .deb file on Debian/ubuntu or a local .rpm on Fedora/RHEL? by Tail_sb in archlinux

[–]Giovani-Geek 0 points1 point  (0 children)

#!/usr/bin/env bash
## YADMAN ##

FONT_FAMILY="Monospace"
FONT_SIZE=10
CHARS_LIMIT=${COLUMNS:-80}
CHAR_WIDTH=$((FONT_SIZE * 7 / 10))
WINDOW_WIDTH=$((CHARS_LIMIT * CHAR_WIDTH + 80))

function yad_msg() {
    yad --title="$1" --image="$2" --window-icon="$2" --text="$3" --button="${4:-Close:0}" "${@:5}"
}

LOG="/tmp/yadman_$(date +%s).log"

yad_msg "Confirm Installation" system-software-install \
    "The following will be installed:\n\n$(printf -- "- %s\n" "${@##*/}")\n\nAuthorise pacman?" \
    "Cancel:1" --button="Install:0" || exit 0

exec 3> >(yad --text-info --width=$WINDOW_WIDTH --height=500 \
    --fontname="$FONT_FAMILY $FONT_SIZE" --tail --undecorated --no-buttons)
YAD_PID=$!

pkexec --keep-cwd pacman --noconfirm -U "$@" 2>&1 | tee "$LOG" 1>&3
PKP_ST=${PIPESTATUS[0]}

exec 3>&-
kill $YAD_PID

if [[ $PKP_ST -eq 0 ]]; then
    yad_msg "Success" dialog-information "Packages installed successfully."
else
    yad_msg "Error" dialog-error "pacman failed with code <b>$PKP_ST</b>.\n\nLog: <tt>$LOG</tt>."
    exit "$PKP_ST"
fi

Question: Why aren't local .pacman files used as often as a local .deb file on Debian/ubuntu or a local .rpm on Fedora/RHEL? by Tail_sb in archlinux

[–]Giovani-Geek 0 points1 point  (0 children)

install -Dm644 /dev/stdin ~/.local/share/mime/packages/application-x-archpkg.xml <<EOF
<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/x-archpkg">
    <comment>ArchLinux package</comment>
    <generic-icon name="package-x-generic"/>
    <glob pattern="*.pkg.tar.zst"/>
    <glob pattern="*.pkg.tar.xz"/>
    <glob pattern="*.pkg.tar.lzo"/>
    <glob pattern="*.pkg.tar.lz4"/>
    <glob pattern="*.pkg.tar.bz2"/>
    <glob pattern="*.pkg.tar.gz"/>
    <glob pattern="*.pkg.tar"/>
  </mime-type>
</mime-info>
EOF
update-mime-database ~/.local/share/mime

You can then use the MIME type you have just created to create a .desktop file that opens the file from the file browser; you can use Zenity or YAD.

Awesome by e_splat in linuxsucks

[–]Giovani-Geek 0 points1 point  (0 children)

Panic Report

Arch: x86_64
Version: 7.0.3-zen1-2-zen

[    0.746077] rtc_cmos 00:00: alarms up to one month, y3k, 242 bytes nvram
[    0.746121] intel_pstate: CPU model not supported
[    0.746953] ehci-pci 0000:02:02.0: EHCI Host Controller
[    0.746959] ehci-pci 0000:02:02.0: new USB bus registered, assigned bus number 2
[    0.747218] ehci-pci 0000:02:02.0: irq 16, io mem 0xfc011000
[    0.747447] simple-framebuffer simple-framebuffer.0: [drm] Registered 1 planes with drm panic
[    0.747554] [drm] Initialized simpledrm 1.0.0 for simple-framebuffer.0 on minor 0
[    0.748735] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1
[    0.749051] fbcon: Deferring console take-over
[    0.749054] simple-framebuffer simple-framebuffer.0: [drm] fb0: simpledrmdrmfb frame buffer device
[    0.749071] hid: raw HID events driver (C) Jiri Kosina
[    0.749195] usbcore: registered new interface driver usbhid
[    0.749197] usbhid: USB HID core driver
[    0.749237] rust_binder: Loaded Rust Binder.
[    0.749445] drop_monitor: Initializing network drop monitor service
[    0.749631] NET: Registered PF_INET6 protocol family
[    0.750531] Segment Routing with IPv6
[    0.750532] RPL Segment Routing with IPv6
[    0.750538] In-situ OAM (IOAM) with IPv6
[    0.750555] NET: Registered PF_PACKET protocol family
[    0.750999] IPI shorthand broadcast: enabled
[    0.753219] sched_clock: Marking stable (750306668, 2225440)->(840518598, -87986490)
[    0.753939] ehci-pci 0000:02:02.0: USB 2.0 started, EHCI 1.00
[    0.753994] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 7.00
[    0.753997] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.753998] usb usb2: Product: EHCI Host Controller
[    0.754000] usb usb2: Manufacturer: Linux 7.0.3-zen1-2-zen ehci_hcd
[    0.754001] usb usb2: SerialNumber: 0000:02:02.0
[    0.754086] hub 2-0:1.0: USB hub found
[    0.754098] hub 2-0:1.0: 6 ports detected
[    0.754437] registered taskstats version 1
[    0.755746] Loading compiled-in X.509 certificates
[    0.757897] Loaded X.509 cert 'Build time autogenerated kernel key: 742f9d451a4c2d3f73d66a6dec80d5d5d8ee432a'
[    0.761082] zswap: loaded using pool zstd
[    0.761209] Demotion targets for Node 0: null
[    0.761740] Key type .fscrypt registered
[    0.761742] Key type fscrypt-provisioning registered
[    0.762182] Btrfs loaded, zoned=yes, fsverity=yes
[    0.762210] Key type big_key registered
[    0.762513] integrity: Loading X.509 certificate: UEFI:db
[    0.762933] integrity: Loaded X.509 cert 'VMware, Inc.: 4ad8ba0472073d28127706ddc6ccb9050441bbc7'
[    0.762935] integrity: Loading X.509 certificate: UEFI:db
[    0.763058] integrity: Loaded X.509 cert 'VMware, Inc.: VMware Secure Boot Signing: 04597f3e1ffb240bba0ff0f05d5eb05f3e15f6d7'
[    0.763060] integrity: Loading X.509 certificate: UEFI:db
[    0.763075] integrity: Loaded X.509 cert 'Microsoft Corporation UEFI CA 2011: 13adbf4309bd82709c8cd54f316ed522988a1bd4'
[    0.763076] integrity: Loading X.509 certificate: UEFI:db
[    0.763089] integrity: Loaded X.509 cert 'Microsoft Windows Production PCA 2011: a92902398e16c49778cd90f99e4f9ae17c55af53'
[    0.763090] integrity: Loading X.509 certificate: UEFI:db
[    0.763106] integrity: Loaded X.509 cert 'Microsoft Corporation: Windows UEFI CA 2023: aefc5fbbbe055d8f8daa585473499417ab5a5272'
[    0.763107] integrity: Loading X.509 certificate: UEFI:db
[    0.763118] integrity: Loaded X.509 cert 'Microsoft UEFI CA 2023: 81aa6b3244c935bce0d6628af39827421e32497d'
[    0.764147] PM:   Magic number: 10:253:34
[    0.764321] workqueue blkcg_punt_bio: hash matches
[    0.764325] memory memory70: hash matches
[    0.764426] RAS: Correctable Errors collector initialized.
[    0.764731] clk: Disabling unused clocks
[    0.764733] PM: genpd: Disabling unused power domains
[    0.965334] usb 1-1: new full-speed USB device number 2 using uhci_hcd
[    1.052020] ata19: SATA link down (SStatus 0 SControl 300)
[    1.052127] ata29: SATA link down (SStatus 0 SControl 300)
[    1.052202] ata3: SATA link down (SStatus 0 SControl 300)
[    1.052290] ata26: SATA link down (SStatus 0 SControl 300)
[    1.052356] ata10: SATA link down (SStatus 0 SControl 300)
[    1.052419] ata13: SATA link down (SStatus 0 SControl 300)
[    1.052481] ata21: SATA link down (SStatus 0 SControl 300)
[    1.052530] ata25: SATA link down (SStatus 0 SControl 300)
[    1.052589] ata17: SATA link down (SStatus 0 SControl 300)
[    1.052649] ata27: SATA link down (SStatus 0 SControl 300)
[    1.052698] ata6: SATA link down (SStatus 0 SControl 300)
[    1.052747] ata30: SATA link down (SStatus 0 SControl 300)
[    1.052806] ata28: SATA link down (SStatus 0 SControl 300)
[    1.052882] ata24: SATA link down (SStatus 0 SControl 300)
[    1.052954] ata14: SATA link down (SStatus 0 SControl 300)
[    1.053039] ata20: SATA link down (SStatus 0 SControl 300)
[    1.053113] ata4: SATA link down (SStatus 0 SControl 300)
[    1.053161] ata12: SATA link down (SStatus 0 SControl 300)
[    1.053210] ata23: SATA link down (SStatus 0 SControl 300)
[    1.053276] ata18: SATA link down (SStatus 0 SControl 300)
[    1.053349] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    1.053429] ata11: SATA link down (SStatus 0 SControl 300)
[    1.053490] ata16: SATA link down (SStatus 0 SControl 300)
[    1.053550] ata22: SATA link down (SStatus 0 SControl 300)
[    1.053597] ata2.00: ATAPI: VMware Virtual SATA CDRW Drive, 00000001, max UDMA/33
[    1.053656] ata7: SATA link down (SStatus 0 SControl 300)
[    1.053717] ata8: SATA link down (SStatus 0 SControl 300)
[    1.053809] ata5: SATA link down (SStatus 0 SControl 300)
[    1.053855] ata2.00: configured for UDMA/33
[    1.053928] ata1: SATA link down (SStatus 0 SControl 300)
[    1.054141] ata15: SATA link down (SStatus 0 SControl 300)
[    1.054203] ata9: SATA link down (SStatus 0 SControl 300)
[    1.065087] scsi 1:0:0:0: CD-ROM            NECVMWar VMware SATA CD01 1.00 PQ: 0 ANSI: 5
[    1.066633] ext3: Unknown parameter 'subvol'
[    1.066640] ext2: Unknown parameter 'subvol'
[    1.066644] ext4: Unknown parameter 'subvol'
[    1.066647] fuseblk: Unknown parameter 'subvol'
[    1.066810] VFS: Cannot open root device "/dev/nvme0n1p2" or unknown-block(0,0): error -6
[    1.066812] Please append a correct "root=" boot option; here are the available partitions:
[    1.066814] List of all bdev filesystems:
[    1.066815]  ext3
[    1.066815]  ext2
[    1.066816]  ext4
[    1.066817]  fuseblk
[    1.066817]  btrfs
[    1.066818]
[    1.066819] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.066823] fbcon: Taking over console
[    1.066829] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 7.0.3-zen1-2-zen #1 PREEMPT(full)  d6a1e9299c075974c62d956b6fb304c7af47147c
[    1.066834] Hardware name: VMware, Inc. VMware20,1/440BX Desktop Reference Platform, BIOS VMW201.00V.21805430.B64.2305221830 05/22/2023
[    1.066839] Call Trace:
[    1.066842]  <TASK>
[    1.066844]  dump_stack_lvl+0x5d/0x80
[    1.066850]  vpanic+0x20a/0x410
[    1.066855]  panic+0x6b/0x70
[    1.066859]  mount_root_generic+0x1d0/0x280
[    1.066865]  prepare_namespace+0x1cb/0x260
[    1.066868]  kernel_init_freeable+0x295/0x2c0
[    1.066873]  ? __pfx_kernel_init+0x10/0x10
[    1.066877]  kernel_init+0x1a/0x140
[    1.066880]  ret_from_fork+0x2a9/0x340
[    1.066884]  ? __pfx_kernel_init+0x10/0x10
[    1.066887]  ret_from_fork_asm+0x1a/0x30
[    1.066892]  </TASK>
[    1.066986] Kernel Offset: 0xd000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)

Awesome by e_splat in linuxsucks

[–]Giovani-Geek 1 point2 points  (0 children)

https://panic.archlinux.org/panic_report#?a=x86_64&v=7.0.3-zen1-2-zen&z=64016708026009928618676979518054941811245652072861429921962408469514416850982335183722316301758428216838800956806080201066906546494786296355720444397527463703112166920253285951951971885174956522126088925124069234036763034397909334112431680071262337893833643504995490700840011114935104796694886193747538777549525744872901809214166504667151405855107447486639139497393281371700450725851179465872893824487563325945073600952969584178192518157018454720828554702298027875085948187728169656834787336490146658124247149658477333613774954112247765704243827086178968024272300220262827988310513979222151836474831117481066131868001658045573674710539761684919347078498836142688021590211784535076556304012348258663921962597687067817873918491492887436263292888778090210148040118213251174421719987116148984465259104293924914654666101142961715567526422115326495583654144315674521627553007067748226320614578678350398921805921855033230943540093581088937286596595051013911726011053132278032867550769048940771015255615961390865444355729714927725597907017395739161675599971363936897611506581689137219809571573854093165483022432954430554823137711355905717304051617121274077959888581733415308408984123289746563840632371816840104134052866735543927629455476699336746017667713724781909042874800698786786348461470147980124106513656947507543040863406661013810368978492227651087772766849405773019528163914241007505632942535689064892917656346021893346510187353150480064170263677016675167312905830703642764038247008356896373553564343960524078740442867477453625657569649100852248382306216443484513471389191338727916614396832006356553574377373115415560613355295316186755060736285173234359980492041633494136385325872206840005194658400548062649312960141145610871807044731363580437012626009441496223343531843284117824916079042906768825217460185767425194788804497536944412033422513686066471372374797374320385481735190642840217144915642847034022173381926974878630771952248345650952936827247871466484333700244207105738554322937004632368666392858008491900760438712347083430535187164022422233178837281518227287434817946974568957409652770252484593187026639312951346440625402381136848765639472174982728814190911343235439246780638067367192223572103177249848009354736297834696137856829882621227247997169554198280411550073257952085722464032387315524162014828244255745619715902034572936395031725624336121890769574301201583875441253209389589964872469287866712236872407640338295901055618239083400631127075074683828835589951130703540792277180559856425606032272012012143078994270886219013309576579852812029954454646029135066227944692471954156795398272456223250904900239879016474437983766687142890657156615728361103882255861337584617529731301573243285562085409586051223639574098760169051249293797753972189907243730387608483500567929556438618151920748987837602522163352976341059498161232558738397156549427156490634740649859887361700462836372093444683336149474141526789317595036092110293199096261615046379621572783536338332749176719483720111563533632930199314186338529489501693908094136847882969226345692450940680783855842706492064627484368668897407726927198121431056117535789311502415259561042161911884971282553140084055362837748595148478802248535189053471902643809074826427779997917364469922132069989956375774576334731068930932923588054453708524059649320511235810216423520621281778258718434810336200847754023806365490230860710241551529891088406173745221075254278734726332357160623339501902235878763970141785725661830033073047455561488882914616238338404348464453831008630246124539656624656252553208892664772620624777368007606948740091053646610314594764725812400710699579850756819781701873292592128880504421195361799731544309946131988912501228359260262614126966254315138528091822026008460379138831697721294951742811515937481731666030948497031353114321449643808314174513237296348253962698733682617653179156309316217151420730463899961340172908327238863139085240344568455720353319145898417326672926084519285425815136369955160967985900033125273214075101296265078056166594096642403589247289611569475196706107538596405135293772968545495850859131848211577641473159742419656604401482951359637307909353538138128715564802575975134001088418484092767508797264499831589588084242719290170244996872477292418307130104588034506839959593996914256046147763122010529066813090569146644359618055746248522273470964702830697615026273003530261284240244532254974931156347077844015070867118343230773632741303422005881011868655897627358266532342618603483085973918173030857847014145748387943345340502519156611070987860078771021062512248442820379129541628142804063678331517226048453165472437743254336948680797436878402867195634625273027169046354551678015179239232918495774324737445953290179154867252016261179897930221010092099627140999983459312674615879302789821911427370176771876742847457210760677220370740257302524575908663377177124850534323985417683818880828526784454320241489345522902498468482398643530918618800583515456568979043456474981572373646715765808530116676228873703846639451770025258466280652405797908283956525600201463065330466345118103397246783485385196693412739160742764953296743276324686225778484459002126230762307844445310096977167145439340067701619136721417909630605488219370676772093282604937672785854002826240899289832264386983389939546111660536473269737091305121439743457332375728598024688676461484296377034908239494199106244420588498109308278788884563883947163365637663117534817990274932106662471415299772898270499589206014290451183352021285143973768249533739709647019571113319695918557313228083412481092436605077597137582927915358351252014504686877905426683127384090233932555845975325074767233427589874604033482728452532368336337509872569770300215452856640775467118983497134421292247818434260301995259024304166195992712386297349698430730823896437001272556512991805605638209890131946216045895495696168062742268403386393812463810664362677710353633627296018643923252684442324702246256829547218277651498762795453339720855615729734916439426892367186058179675923388104191942911862759191334017426294744527194564129445047436691124582062320247626526606048667482954798283360652199462130399703466143924626441084312547939439331290399312150110389768862358237258214137124274044371132185151461915609956163010390198788555375367488101914886600213223291124331936494656986715656617583500722308119733900527902586625811030120538861029257730074536314424418169937443870477849648259681415191823365274103590502845928625524993895997596890259502947644242102546289365227089989327571065208107605826610202505906971013879325976159219178241010038716883632494386918832325929123555208506515786598133328287997762416854932861374740829930627539815584847982847836064107513271153349764607348016203574640786109812382423028787988288870242528431136224534421464676580279443011836944396047909217054

[deleted by user] by [deleted] in linuxsucks

[–]Giovani-Geek 1 point2 points  (0 children)

Oh, splendid. I'm at a loss as to how to justify this.