<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Read Access Violation on al_destroy_bitmap()</title>
		<link>http://www.allegro.cc/forums/view/617253</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 02 Feb 2018 22:27:30 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have a fairly small project in the making right now and I&#39;m currently trying to implement graphic/bitmap handling. I have a class set up which contains an ALLEGRO_BITMAP variable along with other variables.</p><p>The class has a destructor which calls al_destroy_bitmap(). However, this function is causing the program to crash upon a &#39;Read Access Violation&#39; within the allegro function.</p><p>I get confused where callstack tells me it reaches all the way into _al_set_bitmap_shader_field() inside of the al_destroy_bitmap() function. To be even more precise, the error returns &quot;bmp was &#39;<i>real memory address</i>&#39;&quot; which tells me perhaps the BITMAP wasn&#39;t allocated properly or that it somehow now floats in unreachable memory space, or even the pointer isn&#39;t pointing to the_ALLEGRO_BITMAP at the time of the error.</p><p>looking into allegro&#39;s source code, it crashes on line 418 of shader.c which contains</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number"> 414</span><span class="k1">void</span> _al_set_bitmap_shader_field<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>bmp, ALLEGRO_SHADER <span class="k3">*</span>shader<span class="k2">)</span>
<span class="number"> 415</span><span class="k2">{</span>
<span class="number"> 416</span>   <a href="http://www.allegro.cc/manual/ASSERT"><span class="a">ASSERT</span></a><span class="k2">(</span>bmp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 417</span>
<span class="number"> 418</span>   <span class="k1">if</span> <span class="k2">(</span>bmp-&gt;shader <span class="k3">!</span><span class="k3">=</span> shader<span class="k2">)</span> <span class="k2">{</span> <span class="c">// &lt;- LINE 418</span>
<span class="number"> 419</span>      <span class="k1">if</span> <span class="k2">(</span>bmp-&gt;shader<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 420</span>         _al_unregister_shader_bitmap<span class="k2">(</span>bmp-&gt;shader, bmp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 421</span>      <span class="k2">}</span>
<span class="number"> 422</span>      bmp-&gt;shader <span class="k3">=</span> shader<span class="k2">;</span>
<span class="number"> 423</span>      <span class="k1">if</span> <span class="k2">(</span>bmp-&gt;shader<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 424</span>         _al_register_shader_bitmap<span class="k2">(</span>bmp-&gt;shader, bmp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 425</span>      <span class="k2">}</span>
<span class="number"> 426</span>   <span class="k2">}</span>
<span class="number"> 427</span><span class="k2">}</span>
</div></div><p>

debugging and trying to reveal bmp-&gt;shader (in the case of my script &#39;bmap-&gt;shader&#39;) returns an error of &quot;incomplete class type&quot;.</p><p>I use several header files:</p><p>image.h, which contains the class declaration.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#pragma once</span>
<span class="number">  2</span><span class="p">#ifndef ALLEGRO</span>
<span class="number">  3</span><span class="p">#define ALLEGRO</span>
<span class="number">  4</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">  5</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  6</span><span class="p">#endif // !ALLEGRO</span>
<span class="number">  7</span>
<span class="number">  8</span><span class="p">#ifndef IMAGE_H</span>
<span class="number">  9</span><span class="p">#define IMAGE_H</span>
<span class="number"> 10</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number"> 11</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number"> 12</span>
<span class="number"> 13</span><span class="c">// IMAGE HANDLING</span>
<span class="number"> 14</span>
<span class="number"> 15</span><span class="k1">class</span> Image <span class="k2">{</span>
<span class="number"> 16</span>public:
<span class="number"> 17</span>  <span class="k1">int</span> x, y, width, height, scale<span class="k2">;</span>
<span class="number"> 18</span>  <span class="k1">bool</span> mirrored<span class="k2">;</span>
<span class="number"> 19</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>bmap<span class="k2">;</span>
<span class="number"> 20</span>  <span class="k1">char</span><span class="k3">*</span> path<span class="k2">;</span>
<span class="number"> 21</span>
<span class="number"> 22</span>  Image<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>  Image<span class="k2">(</span><span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">int</span>, <span class="k1">bool</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>  ~Image<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>  <span class="k1">void</span> setImage<span class="k2">(</span><span class="k1">char</span><span class="k3">*</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>  <span class="k1">void</span> draw<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>  <span class="k1">void</span> drawTint<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 29</span>
<span class="number"> 30</span><span class="p">#endif // !IMAGE_H</span>
</div></div><p>

image.cpp, which contains the class implementation along with some class constructors (for global use).</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#pragma once</span>
<span class="number">  2</span><span class="p">#ifndef ALLEGRO</span>
<span class="number">  3</span><span class="p">#define ALLEGRO</span>
<span class="number">  4</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">  5</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  6</span><span class="p">#endif // !ALLEGRO</span>
<span class="number">  7</span>
<span class="number">  8</span><span class="p">#include "image.h"</span>
<span class="number">  9</span>
<span class="number"> 10</span>Image background<span class="k2">(</span><span class="n">200</span>, <span class="n">200</span>, <span class="n">200</span>, <span class="n">200</span>, <span class="n">2</span>, <span class="k1">false</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>Image soldierA<span class="k2">(</span><span class="n">100</span>, <span class="n">100</span>, <span class="n">32</span>, <span class="n">24</span>, <span class="n">4</span>, <span class="k1">false</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>Image soldierB<span class="k2">(</span><span class="n">100</span>, <span class="n">100</span>, <span class="n">32</span>, <span class="n">24</span>, <span class="n">2</span>, <span class="k1">false</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>
<span class="number"> 14</span>Image::Image<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 15</span>  x <span class="k3">=</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 16</span>  width <span class="k3">=</span> height <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 17</span>  scale <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 18</span>  mirrored <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 19</span><span class="k2">}</span>
<span class="number"> 20</span>Image::Image<span class="k2">(</span><span class="k1">int</span> xA, <span class="k1">int</span> yA, <span class="k1">int</span> w, <span class="k1">int</span> h, <span class="k1">int</span> scaleA, <span class="k1">bool</span> mirror<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 21</span>  x <span class="k3">=</span> xA<span class="k2">;</span>
<span class="number"> 22</span>  y <span class="k3">=</span> yA<span class="k2">;</span>
<span class="number"> 23</span>  width <span class="k3">=</span> w<span class="k2">;</span>
<span class="number"> 24</span>  height <span class="k3">=</span> h<span class="k2">;</span>
<span class="number"> 25</span>  scale <span class="k3">=</span> scaleA<span class="k2">;</span>
<span class="number"> 26</span>  mirrored <span class="k3">=</span> mirror<span class="k2">;</span>
<span class="number"> 27</span><span class="k2">}</span>
<span class="number"> 28</span>Image::~Image<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 29</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>bmap<span class="k2">)</span><span class="k2">;</span>  <span class="c">// &lt;- CULPRIT FUNCTION</span>
<span class="number"> 30</span><span class="k2">}</span>
<span class="number"> 31</span>
<span class="number"> 32</span><span class="k1">void</span> Image::setImage<span class="k2">(</span><span class="k1">char</span><span class="k3">*</span>source<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 33</span>  bmap <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>source<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span><span class="k2">}</span>
<span class="number"> 35</span><span class="k1">void</span> Image::draw<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 36</span>  <span class="k1">if</span> <span class="k2">(</span>bmap <span class="k3">!</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 37</span>    <a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a><span class="k2">(</span>bmap, <span class="n">0</span>, <span class="n">0</span>, width, height, x <span class="k3">-</span> <span class="k2">(</span>width <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">*</span> scale, y <span class="k3">-</span> <span class="k2">(</span>height <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">*</span> scale, width <span class="k3">*</span> scale, height <span class="k3">*</span> scale, mirrored ? ALLEGRO_FLIP_HORIZONTAL <span class="k2">:</span> <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span><span class="k2">}</span>
<span class="number"> 39</span><span class="k1">void</span> Image::drawTint<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_COLOR"><span class="a">ALLEGRO_COLOR</span></a> color<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 40</span>  <span class="k1">if</span> <span class="k2">(</span>bmap <span class="k3">!</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 41</span>    <a href="http://www.allegro.cc/manual/al_draw_tinted_scaled_bitmap"><span class="a">al_draw_tinted_scaled_bitmap</span></a><span class="k2">(</span>bmap, color, <span class="n">0</span>, <span class="n">0</span>, width, height, x <span class="k3">-</span> <span class="k2">(</span>width <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">*</span> scale, y <span class="k3">-</span> <span class="k2">(</span>height <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">*</span> scale, width <span class="k3">*</span> scale, height <span class="k3">*</span> scale, mirrored ? ALLEGRO_FLIP_HORIZONTAL <span class="k2">:</span> <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</span><span class="k2">}</span>
</div></div><p>

imageLib.h, which contains a dictionary of the class objects I use in main.cpp along with initialization functions.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#pragma once</span>
<span class="number">  2</span><span class="p">#include "image.h"</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">extern</span> Image background<span class="k2">;</span>
<span class="number">  5</span><span class="k1">extern</span> Image soldierA<span class="k2">;</span>
<span class="number">  6</span><span class="k1">extern</span> Image soldierB<span class="k2">;</span>
<span class="number">  7</span>
<span class="number">  8</span><span class="k1">bool</span> loadImages<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  9</span>  background.setImage<span class="k2">(</span><span class="s">"Graphics/StatScreen.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>  soldierA.setImage<span class="k2">(</span><span class="s">"Graphics/GreatswordGuy.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>  soldierB.setImage<span class="k2">(</span><span class="s">"Graphics/GreatswordGuy.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>  <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 13</span><span class="k2">}</span>
<span class="number"> 14</span>
<span class="number"> 15</span><span class="k1">void</span> destroyImages<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 16</span>  background.~Image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>  soldierA.~Image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>  soldierB.~Image<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span><span class="k2">}</span>
</div></div><p>

and finally main.cpp which contains the main source code and utilizes the header files.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#define ALLEGRO</span>
<span class="number">  2</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">  3</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="c">//#include "image.h"</span>
<span class="number">  6</span><span class="p">#include "imageLib.h"</span>
<span class="number">  7</span>
<span class="number">  8</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span><span class="k1">const</span> <span class="k1">int</span> WINDOW_WIDTH <span class="k3">=</span> <span class="n">400</span>, WINDOW_HEIGHT <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span>
<span class="number"> 11</span><span class="k1">const</span> <span class="k1">float</span> FPS <span class="k3">=</span> <span class="n">60</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span><span class="k1">float</span> scale <span class="k3">=</span> <span class="n">4</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> initDisplay<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 16</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number"> 17</span>  <span class="c">//display = al_create_display(w, h);</span>
<span class="number"> 18</span>  <span class="k1">return</span> display<span class="k2">;</span>
<span class="number"> 19</span><span class="k2">}</span>
<span class="number"> 20</span>
<span class="number"> 21</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span><span class="k3">*</span>argv<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 22</span>
<span class="number"> 23</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 24</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"failed to initialize allegro!\n"</span><span class="k2">;</span>
<span class="number"> 25</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 26</span>  <span class="k2">}</span>
<span class="number"> 27</span>  cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"ALLEGRO INITIALIZED...\n"</span><span class="k2">;</span>
<span class="number"> 28</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 29</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"failed to initialize the keyboard!\n"</span><span class="k2">;</span>
<span class="number"> 30</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 31</span>  <span class="k2">}</span>
<span class="number"> 32</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 33</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"failed to initialize the mouse!\n"</span><span class="k2">;</span>
<span class="number"> 34</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 35</span>  <span class="k2">}</span>
<span class="number"> 36</span>  <span class="c">//if (!al_init_font_addon()) {</span>
<span class="number"> 37</span>  <span class="c">//  cout &lt;&lt; "failed to initialize font add-on!\n";</span>
<span class="number"> 38</span>  <span class="c">//}</span>
<span class="number"> 39</span>
<span class="number"> 40</span>  <a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>  <a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</span>  <span class="c">//al_init_font_addon();</span>
<span class="number"> 43</span>
<span class="number"> 44</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k3">=</span> initDisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 45</span>  <span class="c">//ALLEGRO_FONT *font = al_create_builtin_font();</span>
<span class="number"> 46</span>
<span class="number"> 47</span>  display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>WINDOW_WIDTH, WINDOW_HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 48</span>
<span class="number"> 49</span>  loadImages<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 50</span>
<span class="number"> 51</span><span class="c">/* </span>
<span class="number"> 52</span><span class="c"></span>
<span class="number"> 53</span><span class="c">simulation code snipped</span>
<span class="number"> 54</span><span class="c"></span>
<span class="number"> 55</span><span class="c">*/</span>
<span class="number"> 56</span>
<span class="number"> 57</span>  destroyImages<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 58</span>
<span class="number"> 59</span>  <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 60</span>
<span class="number"> 61</span>  <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 62</span>
<span class="number"> 63</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 64</span><span class="k2">}</span>
</div></div><p>

Thanks in advance.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (lCoopsl)</author>
		<pubDate>Fri, 02 Feb 2018 03:18:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Never call the destructor yourself. Only through delete.</p><p>What&#39;s happening is that the destructor runs twice, once when you call destroy images, and again after main exits and the global destructors run.</p><p>Solutions;</p><p>1. Make your Image objects local to main.</p><p>2. Make your Image objects pointers and use new and delete.</p><p>3. Move your destruction code into a separate function you call from your destructor and call it yourself if the objects are global, making sure to only free / delete resources once.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 02 Feb 2018 22:27:30 +0000</pubDate>
	</item>
</rss>
