Skip to content
Snippets Groups Projects
Commit 098169b0 authored by Jacob Theisen's avatar Jacob Theisen
Browse files

sjo

parent a35ec94f
No related branches found
No related tags found
No related merge requests found
......@@ -35,10 +35,6 @@ def dcomp():
return dcomp_string
all_strings = dcomp()
print(all_strings)
print(strings_array)
print(all_lz_bytes)
print(tekst )
......@@ -143,17 +139,15 @@ for i in all_strings:
if len(bit_string)%8 != 0:
rest = 8 - len(bit_string)%8
bit_string += '0' * rest
print(bit_string)
print(len(bit_string)/8)
bytes = []
for i in range(0 ,len(bit_string), 8):
num = int(bit_string[i:i+8], 2)
print(num)
bytes.append(num.to_bytes(1,'little'))
print(bytes)
num_of_bytes = len(bytes)
with open('./trash/huffmann_test_file_comp', 'w') as file:
......
import string
with open('./trash/huffmann_test_file_comp', 'rb') as file:
text = file.read()
i = 0
meta_data = ''
while True:
if meta_data[-9:] == 'END TABLE':
break
print(text[i:i+1])
if text[i:i+1].decode('UTF-8') not in string.printable:
print(text[i:i+2])
meta_data += text[i:i+2].decode('UTF-8')
i+2
else:
meta_data += text[i:i+1].decode('UTF-8')
i += 1
text = text[i+2:]
print(len(text))
meta_data = meta_data.split('\n')
rep_tree_arr = []
class rep_tree():
def __init__(self, symb, val):
self.symb = symb
self.val = val
newline_char = False
for i in meta_data:
if i == meta_data[-1]:
i = i.split()
byte_count = int(i[0])
rest1 = int(i[1])
else:
if len(i) > 0:
char = i[0]
value = i[1:]
else:
newline_char = True
continue
if newline_char:
char = '\n'
value = i
newline_char = False
rep_tree_arr.append(rep_tree(char, value))
# for k in rep_tree_arr:
# print(k.symb, k.val)
huffman_code = text[:byte_count]
lz_code = text[byte_count:]
bit_string = ''
for i in range(len(huffman_code)):
num = int.from_bytes(huffman_code[i:i+1],'little')
bi = bin(num).lstrip('0b')
if len(bi) != 8:
rest = 8 - len(bi)
bi = '0' * rest + bi
bit_string += bi
bit_string = bit_string[:-rest1]
huff_string = ""
tmp_value = ''
for k in range(len(bit_string)):
tmp_value += bit_string[k]
a = [a for a in rep_tree_arr if a.val == tmp_value]
if len(a) > 0:
huff_string += a[0].symb
tmp_value = ''
full_code = b''
next_chars = 0
for i in range(0,len(lz_code),3):
value = lz_code[i]
with open('./hm_uncomp', 'ab') as file:
file.write(value.to_bytes(2,'little'))
with open('./hm_uncomp', 'a') as file:
file.write(huff_string[:value])
huff_string = huff_string[value:]
if i + 2 <= len(lz_code):
with open('./hm_uncomp', 'ab') as file:
file.write(lz_code[i+1].to_bytes(2,'little'))
file.write(lz_code[i+2].to_bytes(2,'little'))
No preview for this file type
File added
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a tortor nec odio vehicula porttitor et sed quam. Phasellus finibus dolor a sodales fringilla. Quisque egestas sapien eget tellus tincidunt pretium. Aenean quis mauris eu mi accumsan tincidunt. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut vel elit in urna placerat viverra mollis ut felis. Donec a maximus elit, ut fringilla neque. Sed a laoreet dui. Integer mauris est, imperdiet in enim ac, condimentum elementum erat. Curabitur massa turpis, rhoncus vitae felis elementum, vestibulum porttitor neque.
Donec dapibus pretium nisi ac consequat. Mauris fermentum feugiat laoreet. Donec in sem non nisl hendrerit tristique. Phasellus tempor tellus sit amet tortor elementum molestie. Proin in ex diam. Aliquam molestie, quam et semper mollis, nibh nibh vehicula tortor, at faucibus metus ante sed sapien. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nullam vehicula, lacus sit amet pretium dignissim, tortor odio maximus sem, ut efficitur eros eros quis erat. Sed semper finibus ex sit amet dignissim. Vestibulum at ante eu purus ullamcorper hendrerit id mattis risus. Vestibulum nulla nisi, fermentum eget faucibus eu, elementum nec est. Nunc finibus fermentum semper.
Suspendisse blandit arcu turpis, at egestas lorem dictum sit amet. Sed eleifend rhoncus lorem, ac facilisis tortor congue ut. Praesent ultricies erat vitae velit interdum laoreet. Nam auctor tellus ac luctus finibus. Morbi interdum fermentum mauris ut pharetra. Phasellus vehicula mattis condimentum. Nam gravida condimentum eros eget volutpat. Nulla malesuada tincidunt erat, vitae lacinia diam cursus vel. Vivamus vitae dapibus odio. Fusce sit amet blandit nisi. Aliquam nec orci odio. Curabitur pretium accumsan congue. Nunc eget massa est. Quisque ac sodales mi, sit amet auctor lacus. Mauris vel sollicitudin sem. Aenean ac tempus nibh, nec ultrices orci.
Etiam sed enim mi. Nunc rutrum interdum dolor non lacinia. Suspendisse vehicula dui finibus sodales pretium. Quisque varius iaculis orci, ac vestibulum ex porttitor non. Donec efficitur metus nunc, eget elementum dui luctus vel. Maecenas malesuada tristique auctor. Proin semper lacinia sollicitudin. Nunc ac porta sapien.
Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed vitae tempus ipsum. Nam malesuada augue scelerisque, molestie ligula sit amet, tristique turpis. Aliquam non leo dolor. Morbi accumsan lorem id purus dictum, id posuere quam interdum. Pellentesque efficitur eros sit amet odio feugiat, ac cursus sem fringilla. Fusce eget ipsum et risus congue pulvinar id eu risus. In hac habitasse platea dictumst. Pellentesque accumsan id purus vitae sollicitudin. Praesent faucibus nibh diam, non accumsan nulla semper nec. Fusce lacus neque, finibus ac sem ac, facilisis mollis felis. Donec eget mattis justo.
In nulla tortor, fermentum vel magna non, hendrerit auctor felis. Aliquam ultrices congue augue ac vulputate. In placerat maximus nulla, vitae lobortis turpis faucibus vitae. Integer viverra lacus non nisl tincidunt, et mollis ligula volutpat. Cras at dapibus elit. Nam velit quam, aliquam in lobortis nec, hendrerit et elit. Suspendisse non consequat tortor. Nam laoreet lectus id ipsum malesuada dignissim. Phasellus nulla felis, fermentum a nisl eu, auctor elementum velit. Curabitur mi ex, lobortis eu leo at, bibendum aliquam urna. Etiam eget aliquet lorem. Suspendisse leo est, feugiat sed lacus vitae, pellentesque blandit risus.
Fusce sollicitudin tortor at ultricies cursus. Etiam luctus fringilla dui a porta. Nulla id lacus sapien. Maecenas fringilla dui nec sem luctus vehicula. Aenean porta egestas interdum. Maecenas quis felis urna. Suspendisse at neque eu massa lacinia aliquet non quis erat. Etiam commodo arcu eu nisl elementum vehicula. Aliquam facilisis, velit vestibulum tincidunt luctus, odio ex hendrerit nulla, ut gravida nunc dui eu eros. Sed facilisis orci et blandit auctor. Mauris laoreet ipsum sed urna varius, a lacinia velit commodo. Proin feugiat, purus sed euismod aliquam, neque erat tincidunt ex, ut vehicula nisi nulla non arcu.
Praesent aliquam diam a nulla auctor, et malesuada orci volutpat. Vestibulum ut turpis auctor, maximus metus eget, posuere ex. Maecenas egestas diam a erat euismod, eget molestie nulla malesuada. Vivamus convallis odio nisl, in fringilla justo interdum eu. Donec facilisis lorem molestie nunc sodales, ac aliquam mauris finibus. Nulla tempor dolor ut dignissim interdum. Etiam eget eros bibendum, hendrerit lectus vitae, molestie orci. Nulla accumsan cursus enim. Integer lorem neque, ornare sed ante at, vulputate venenatis dui.
Vestibulum dolor ligula, lacinia quis sapien vel, semper congue erat. Mauris tincidunt, nisl eu faucibus sodales, massa metus dapibus nisi, non pharetra tortor nisl vel quam. Nunc in lacus nec ex fringilla varius nec vitae nunc. Maecenas luctus velit a hendrerit blandit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc sit amet leo nisi. Ut gravida ex nec nisi malesuada, nec bibendum nunc condimentum. Maecenas vitae malesuada tellus, eu vulputate quam. Sed vitae tortor quis dolor cursus rutrum. Donec a elit at sapien varius egestas. Mauris mollis ut arcu et finibus. Nam ornare rutrum posuere.
Integer luctus ornare dolor vel varius. In sit amet elit lectus. Mauris cursus sagittis feugiat. Suspendisse potenti. Quisque eget tortor sed ante malesuada consectetur quis vel nulla. Ut eu gravida neque. Integer sed viverra libero, sit amet convallis lectus. Morbi cursus ac dolor id rhoncus. Maecenas id mauris sit amet enim sollicitudin tincidunt et nec sapien. Nullam scelerisque risus non egestas feugiat. Nullam in facilisis ex.
Sed venenatis tincidunt tortor sit amet congue. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vulputate efficitur orci ac pharetra. Aliquam viverra sapien vel ex lacinia porttitor. Vestibulum suscipit elementum tortor et dictum. Aenean euismod tincidunt dolor, eu aliquet libero sagittis non. In hac habitasse platea dictumst.
Maecenas consectetur, ligula quis malesuada pretium, urna purus pharetra arcu, eget semper nibh urna sed eros. Donec et nisi id purus imperdiet laoreet a quis leo. In ac lorem at erat porttitor convallis. Etiam hendrerit libero in lectus ullamcorper, sed congue libero commodo. Proin libero est, maximus at congue quis, ultrices quis dolor. Donec porta est a rutrum lobortis. Nunc orci turpis, volutpat vel dolor eget, tempor mollis augue. Curabitur nec finibus purus, sit amet accumsan felis.
In molestie dignissim sapien, sodales condimentum ante varius id. Morbi et malesuada urna, nec posuere purus. Duis est magna, faucibus luctus faucibus et, molestie ut nisi. Vestibulum eget nibh vitae sapien malesuada cursus ac eleifend quam. Integer sagittis maximus turpis. Phasellus justo odio, egestas ut purus at, facilisis ultricies felis. Nulla efficitur mauris eget nunc consequat, eget pellentesque odio auctor.
Proin porta et neque sed vulputate. Praesent auctor purus non arcu mattis eleifend. Donec varius auctor mi eu aliquam. Quisque lacinia elementum tortor, quis congue sem consectetur non. Duis scelerisque lacus in tincidunt lacinia. Phasellus ac nibh vitae orci ultrices lacinia id vel dui. Aenean rhoncus, turpis quis lobortis lacinia, mi mi aliquam nisl, nec varius nunc arcu sit amet felis. Nunc convallis augue velit, eu cursus felis pellentesque vitae. Vestibulum quam eros, auctor vitae hendrerit nec, suscipit vel libero. Duis augue tellus, suscipit at feugiat vitae, efficitur ac metus. Etiam et egestas elit. Quisque vehicula, ante eget laoreet semper, elit dui placerat justo, eu venenatis neque nisl vel nisl. Nunc rhoncus dolor ante, et fermentum lectus fringilla quis. Duis pulvinar, elit eu elementum fringilla, leo risus porta ex, at sollicitudin tortor mauris sed diam. Donec velit libero, fringilla ac erat quis, consequat vestibulum ligula. Nam finibus, lacus at varius hendrerit, magna lectus auctor leo, pulvinar ullamcorper odio nunc sed augue.
Cras cursus lectus vitae nibh suscipit pulvinar. Ut auctor ullamcorper lorem sed tempus. Duis justo ex, faucibus ac mauris quis, tempus dictum risus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque in egestas enim. Cras cursus in dolor efficitur pulvinar. Etiam lobortis, orci id efficitur congue, purus arcu bibendum elit, sed feugiat turpis mi venenatis justo. Morbi turpis tellus, finibus eu congue eu, auctor at tortor. Ut lobortis tellus id scelerisque mattis. Vivamus convallis quis orci ac fermentum. Nulla gravida enim et elit bibendum finibus. Aenean vel pretium magna. Sed sit amet lobortis mi. Morbi eros ligula, lobortis a commodo ac, vehicula vitae odio. Ut fringilla urna et mi posuere, ut gravida lectus efficitur. Fusce dictum libero in nisi mollis, ut feugiat nibh sodales.
In feugiat molestie quam, sed egestas odio rhoncus vel. Etiam fringilla est varius massa scelerisque blandit. Fusce sollicitudin, elit eu mattis laoreet, nisl mauris blandit lacus, sit amet dapibus orci velit ut arcu. Cras ac porttitor felis. Donec cursus vulputate dui at pretium. Duis eleifend, nulla et fermentum mollis, eros purus commodo leo, vitae molestie purus orci eu purus. Donec fringilla purus urna, a vehicula risus faucibus aliquet. Morbi ut massa felis. Morbi quis enim leo. Suspendisse in commodo felis. Morbi quis tortor consectetur, scelerisque ipsum a, maximus est. Sed accumsan ipsum libero, non viverra libero cursus luctus. Maecenas luctus vestibulum ornare. Morbi tincidunt velit at consectetur suscipit.
Nullam sed posuere enim, et aliquet ex. Nam nec turpis ut lectus ultricies gravida. Integer pharetra venenatis urna id mollis. Donec vulputate lorem ut nunc fringilla accumsan. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Morbi tempus metus quis lacinia tincidunt. Aliquam erat volutpat. Aliquam tellus ligula, pellentesque et elit et, sagittis venenatis leo. Vestibulum lorem tellus, tempor a tellus dictum, consequat euismod dui.
Pellentesque neque est, iaculis nec quam nec, ultricies vehicula mi. Integer non mauris sapien. Integer lacinia libero et tortor semper, vitae posuere libero auctor. Suspendisse quam odio, feugiat et magna convallis, lobortis tempor sem. Sed sit amet porttitor massa. Maecenas in placerat urna. In hac habitasse platea dictumst.
Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc vulputate cursus erat vitae tincidunt. Donec sodales purus vitae tristique dictum. Sed cursus ex vitae eros malesuada, eu suscipit purus dictum. Mauris a risus id urna convallis lobortis eget in ex. Pellentesque sit amet tincidunt ante. Fusce blandit tempor mauris, sit amet porttitor massa efficitur et. Donec ultricies sagittis massa, quis pulvinar mauris lobortis eget. Nam rhoncus accumsan dui, sed blandit enim luctus sit amet. Suspendisse potenti. Pellentesque egestas magna non ipsum porta, ac lacinia tellus pretium. Donec mollis, nibh non convallis ultrices, nunc orci pretium elit, nec porttitor nisi neque et quam. Vestibulum a condimentum turpis.
Duis semper congue nibh, tempus ultricies tortor pulvinar eget. Suspendisse elementum massa in neque pharetra, nec aliquet sem consectetur. Mauris elit eros, sollicitudin eget fringilla ac, facilisis ut elit. Sed nec eros interdum, facilisis nunc efficitur, blandit quam. Aenean at metus ac sapien efficitur rutrum. Etiam malesuada sem ac nulla faucibus, consequat consectetur eros commodo. Sed eget tellus sodales, hendrerit sapien in, suscipit arcu. Proin nec ex condimentum, pharetra eros vel, rhoncus urna. In lacinia placerat arcu, et imperdiet mauris elementum eu. Donec dui augue, fermentum quis pulvinar at, placerat quis arcu. Proin dapibus justo eu velit cursus, ut sollicitudin tellus sagittis. Morbi tincidunt non diam ullamcorper porttitor. Pellentesque imperdiet nunc non tellus bibendum venenatis.
Aliquam rhoncus turpis lacus, sit amet ultricies velit fringilla eu. Proin aliquet quis felis ut lobortis. Morbi auctor et neque ac dignissim. Interdum et malesuada fames ac ante ipsum primis in faucibus. Suspendisse eget dui iaculis, maximus sem id, maximus augue. Aliquam rhoncus enim quis justo ultricies dapibus. Integer convallis eros at turpis aliquam, nec auctor tortor porta.
Donec vel viverra libero. Vivamus vulputate commodo congue. Aliquam erat volutpat. Nam ullamcorper libero felis, id pharetra sem interdum quis. Donec placerat ex a odio luctus fermentum. Nulla et pellentesque ante. Vestibulum dui ipsum, volutpat in sapien eu, bibendum aliquet velit. Donec vitae dapibus lectus. Curabitur eu libero diam. Phasellus tempus vulputate tortor ac euismod. Nam non finibus nisi, nec rutrum odio. Nulla vestibulum in ante in pellentesque. Quisque iaculis eros vel metus porttitor auctor. Suspendisse potenti.
Suspendisse imperdiet egestas lacinia. Duis congue hendrerit eros, at pulvinar magna lacinia ac. Nulla vel dictum odio. Aliquam vehicula elit tortor, eu elementum ipsum dictum sed. Morbi mattis ex eu efficitur imperdiet. Pellentesque vitae ligula in eros gravida imperdiet ac et urna. Ut a nunc vel orci ullamcorper finibus in eu turpis. Aenean egestas accumsan ligula, ac facilisis ipsum. Nulla sed augue vitae eros viverra tristique. Morbi quis turpis at tortor placerat pellentesque eget a sem. Nam sapien orci, imperdiet id accumsan vitae, pretium at magna. Etiam aliquet ipsum ac eros varius, vitae mattis tellus placerat. Praesent ut posuere tortor, sed maximus ex.
Suspendisse potenti. Curabitur sollicitudin mauris nec diam porttitor mattis. Nunc vitae tortor semper, placerat libero vitae, vehicula dui. Aliquam eget sollicitudin ex, ac sollicitudin ligula. Etiam ut lorem vitae diam posuere fringilla. Nam quis sagittis felis. Phasellus tristique magna vel nibh tincidunt interdum. Sed sit amet risus porta, efficitur lacus eget, dignissim leo. Integer nec ante eget odio convallis dapibus. Donec eu nibh purus. Aenean vulputate elit quis felis lacinia, quis aliquet nibh lobortis. Ut et iaculis felis. In gravida elit nec quam commodo elementum. Ut vel nulla at metus tristique placerat at at odio. Curabitur non metus eu mi laoreet efficitur. Fusce nulla justo, euismod ultricies justo vitae, dignissim faucibus sapien.
Aliquam blandit vestibulum turpis ornare venenatis. Vestibulum consequat volutpat metus id molestie. Donec dignissim nunc in nisi suscipit tempus. Duis aliquet mi tortor, eget bibendum purus rhoncus sit amet. Aliquam imperdiet purus nunc, in aliquet neque aliquet in. In hac habitasse platea dictumst. Nunc ipsum dolor, vehicula nec nisi vel, elementum sodales libero. Integer aliquam eros turpis, at pretium tortor vulputate quis. Donec laoreet varius enim ac cursus. Nullam diam magna, condimentum in pellentesque vitae, tincidunt a ipsum.
Curabitur congue non turpis venenatis lobortis. Praesent a elit non lacus ultrices vulputate nec ac ex. Aliquam elementum massa neque, at condimentum velit mattis sit amet. Nulla molestie massa mauris, eget aliquet nisl lacinia id. Nunc eleifend gravida quam, eget ultrices nisi finibus in. Aenean at ultricies nibh. In hac habitasse platea dictumst. Etiam mauris massa, auctor venenatis urna ut, facilisis suscipit elit. Aliquam id ligula ipsum. Sed eu volutpat massa. Donec arcu turpis, varius quis ullamcorper ac, laoreet et tortor. Curabitur nec sagittis libero, ac bibendum mi. Nullam lacinia varius velit, vel cursus lacus. Nulla congue, mi a imperdiet tempor, ipsum magna eleifend sapien, at hendrerit orci lacus eu augue. Quisque condimentum lectus odio.
Maecenas sed enim nisl. Duis ipsum odio, dapibus rutrum augue a, aliquam sagittis orci. Vivamus vitae diam rutrum est dapibus tincidunt. Vivamus a efficitur diam, et porta justo. Cras luctus eleifend viverra. Quisque ut erat nec nulla consequat condimentum. Suspendisse a purus a velit sollicitudin luctus et sit amet risus. Sed sagittis, dui et tempus vehicula, arcu dui rutrum urna, vel vestibulum arcu leo ut urna. Quisque sed malesuada leo. Nullam luctus consequat lobortis. Etiam ut congue est, sit amet ultrices est. Etiam scelerisque quis sapien a vehicula.
Mauris ut aliquam mi, fringilla pulvinar orci. Curabitur condimentum ligula a odio fermentum blandit. Aenean fringilla pretium odio, quis pellentesque arcu semper nec. Fusce posuere neque a lorem pretium venenatis. Maecenas eu porta diam. Morbi lobortis fringilla lorem a scelerisque. Morbi id porta tortor, ut elementum orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis lacus augue, vulputate feugiat ornare in, porttitor ac orci. Ut at eros molestie velit lobortis dignissim quis vitae tortor. Suspendisse aliquet lectus tristique accumsan congue. Aliquam mollis ac magna ac porttitor. Nam a libero in lacus fermentum vehicula et eu justo. Vestibulum nunc dui, gravida vel porttitor id, rhoncus fringilla erat. Nam tincidunt pellentesque ultrices.
Praesent ut ante massa. Quisque a leo eu odio ornare ornare a vulputate augue. Duis tincidunt lectus lorem, vel egestas lorem tincidunt sit amet. Nullam nisi magna, finibus non cursus in, maximus elementum lacus. Fusce non tellus pellentesque, posuere nisl ut, placerat ex. Quisque dignissim turpis sit amet dolor malesuada cursus. Nullam suscipit bibendum sem ac ullamcorper. Pellentesque non tristique nisl. Etiam eget risus felis.
Morbi vel vulputate dui, nec ultrices neque. Proin imperdiet urna nunc, ut sagittis nisl scelerisque tempor. Sed vulputate elementum dui eget aliquam. Suspendisse et felis faucibus, accumsan urna nec, pharetra turpis. Aliquam a magna eget orci ultricies maximus. Integer commodo est risus, sodales iaculis tortor cursus nec. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed massa non urna varius ultricies.
Aenean porta turpis eget sem vulputate, vel scelerisque ligula eleifend. Mauris non tempor quam. Pellentesque vel pretium ipsum. In hac habitasse platea dictumst. Aenean laoreet luctus diam, iaculis posuere purus cursus sodales. Nunc aliquam ipsum sed purus molestie, ut laoreet arcu sodales. Aenean felis orci, finibus nec fringilla sit amet, condimentum id quam. Nulla porttitor erat quis lorem tincidunt tempus. Curabitur a nulla commodo, bibendum tortor a, convallis turpis. Morbi vitae libero a massa maximus efficitur at eu elit. Vivamus condimentum a nisl sed egestas.
Phasellus vel sodales lacus. Nunc ligula lectus, pulvinar condimentum pulvinar ac, molestie sit amet felis. Phasellus gravida accumsan quam vel pretium. Vestibulum bibendum mollis sapien. Phasellus ac felis at purus sagittis tempus. Nulla odio orci, maximus eget maximus vel, posuere id purus. Maecenas ornare nulla vitae euismod placerat. Curabitur interdum neque ut bibendum interdum. Vestibulum eget nibh quam. Nulla efficitur, odio non lobortis tempus, tortor velit ornare odio, a luctus nulla lorem ac tortor. Proin nec sapien ante. Fusce nec felis placerat, posuere nunc eu, pretium leo. Etiam orci lectus, sodales aliquet massa non, viverra tincidunt nunc. In commodo eget velit eu mollis. Ut mollis sed augue nec pretium. Pellentesque at mauris ac odio laoreet tincidunt.
Pellentesque nisl justo, pulvinar vestibulum tortor quis, dictum rhoncus risus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse consectetur metus dolor, et tincidunt nisi imperdiet a. Proin velit orci, vulputate ut purus id, accumsan pellentesque ante. Vestibulum et sodales nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Quisque ultrices sollicitudin enim eu posuere. Maecenas mollis enim justo, eget porta neque elementum et. Sed efficitur justo nec metus malesuada, nec elementum quam iaculis. Maecenas porta eros non nibh faucibus tincidunt. Morbi tristique urna posuere.
\ No newline at end of file
Problemer, problemer. Alltid problemer! Dagens problem er å kompimere problematisk tekst.
\ No newline at end of file
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment