Advertisement
CSenshi

GABEEL

Dec 31st, 2019
440
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.86 KB | None | 0 0
  1. from sys import argv
  2. import numpy as GABO
  3. import itertools
  4.  
  5. gabelas_sheipi = (-1, 1)
  6. gabelas_failebi = open(argv[1], 'r'), open(argv[2], 'rb'), open(argv[3], 'wb')
  7. gabelas_n, gabelas_k = map(int, gabelas_failebi[0].readline().split(' '))
  8.  
  9. gabelas_matrica = []
  10. for gabelas_indeqsi in range(gabelas_k):
  11.     gabelas_masivi = []
  12.     gabelas_xazi = gabelas_failebi[0].readline().rstrip('\n')
  13.     for gabelas_kodi in gabelas_xazi:
  14.         gabelas_masivi.append(int(gabelas_kodi))
  15.     gabelas_masivi = GABO.array(gabelas_masivi)
  16.     gabelas_matrica.append(gabelas_masivi)
  17. gabelas_matrica = GABO.array(gabelas_matrica)
  18.  
  19. gabelas_leqsikoni = {}
  20. while True:
  21.     gabelas_xazi = gabelas_failebi[0].readline().rstrip('\n')
  22.     if not gabelas_xazi:
  23.         break
  24.     gabelas_dasplituli = gabelas_xazi.split('!')
  25.     gabelas_sgabelas_indeqsiromi, gabelas_kodi = gabelas_dasplituli[0], gabelas_dasplituli[1]
  26.     gabelas_leqsikoni[gabelas_sgabelas_indeqsiromi] = gabelas_kodi
  27.  
  28.  
  29. # File to string
  30. gabelas_failis_info = ''
  31. gabelas_bufferi = gabelas_failebi[1].read()
  32. for gabelas_byte in gabelas_bufferi:
  33.     gabelas_byte_str = "{0:b}".format(gabelas_byte)
  34.     gabelas_failis_info += '0'*(8-len(gabelas_byte_str))+gabelas_byte_str
  35.  
  36.  
  37. gabelas_chasaweri_teqsti = ''
  38. gabelas_failis_infos_zoma = len(gabelas_failis_info)
  39. for gabelas_indeqsi in range(0, gabelas_failis_infos_zoma//gabelas_n, 1):
  40.     gabelas_axlandeli_chunki = gabelas_failis_info[gabelas_indeqsi *
  41.                                                    gabelas_n:(gabelas_indeqsi + 1)*gabelas_n]
  42.     gabelas_vectori = list(map(int, gabelas_axlandeli_chunki))
  43.     gabelas_vectori = GABO.array(gabelas_vectori).reshape(gabelas_sheipi)
  44.  
  45.     gabelas_kodi = ''
  46.     gabelas_namravli = gabelas_matrica.dot(gabelas_vectori) % 2
  47.     for gabelas_c in gabelas_namravli:
  48.         gabelas_kodi += str(gabelas_c[0])
  49.  
  50.     if gabelas_kodi not in gabelas_leqsikoni:
  51.         continue
  52.     gabelas_masivi = []
  53.     for gabelas_kodi in gabelas_leqsikoni[gabelas_kodi]:
  54.         gabelas_masivi.append(int(gabelas_kodi))
  55.     gabelas_masivi = GABO.array(gabelas_masivi).reshape(gabelas_sheipi)
  56.  
  57.     gabelas_vectori = (gabelas_vectori - gabelas_masivi) % 2
  58.  
  59.     for gabelas_veqtoris_elementi in gabelas_vectori:
  60.         gabelas_chasaweri_teqsti += str(gabelas_veqtoris_elementi[0])
  61.  
  62.  
  63. # Write
  64. gabelas_indeqsi = 0
  65. GABEEEEL = b''
  66. while True:
  67.     gabelas_byte = 0
  68.     for gabelas_i in range(7, -1, -1):
  69.         if gabelas_indeqsi < len(gabelas_chasaweri_teqsti):
  70.             gabelas_indeqsi += 1
  71.             gabelas_axlandeli_biti = gabelas_chasaweri_teqsti[gabelas_indeqsi-1]
  72.             if gabelas_axlandeli_biti == '1':
  73.                 gabelas_byte |= pow(2, gabelas_i)
  74.         else:
  75.             gabelas_failebi[2].write(
  76.                 GABEEEEL + bytes([gabelas_byte | pow(2, gabelas_i)]))
  77.             exit()
  78.     GABEEEEL += bytes([gabelas_byte])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement