Hi Filipe,
"So, I need to read the whole Modem answer (always bigger than 80 chars/bytes) 
and then extract the useful data part of it."
This is only partly true. Yes, you have to read it. But, to read it, you don't 
really have to store it. You can e.g. use a state machine which checks for the 
chars "+","C","M","G","L"... in that order, advancing the state each time the 
right char comes in. Only when the state reaches the value that indicates the 
start of the payload, you can start copying incoming chars to your buffer (if 
that is really needed). 
The 80-byte array limit is pic dependent: on PIC18F, arrays can be up to 256 
bytes. To be sure, if you want to store the whole message, better use 
large_array anyway.
About the modified library: Can be done, but I wouldn't do it that way. Mixing 
global variables between the main program and a library makes code maintenance 
hard. And, with such specific alterations, I wouldn't call it a library 
anymore. If I was going that way, I'd copy the library code to the main program 
and do the modifications there. 
Good luck :-)
Greets,Kiste
    Am Dienstag, 13. Dezember 2022, 09:31:49 MEZ hat flyway38 
<[email protected]> Folgendes geschrieben:  
 
 Summing up this issue is;
This is what Modem answers to my AT command to read SMSs received:(As obvious, 
first line is SMS identifier and second line is information data in this SMS)
+CMGL: 1,"REC READ","+351000000000",,"2022/12/08,17:10:12+00"
GA6-B MODEM SMS TEST, ADC= 2.757... 
This part is enough to read from modem's answer, since my code will delete all 
received SMSs after reading the first one.
It has currently 93 chars but can change. From this will only need 2nd line 
part "GA6-B MODEM SMS TEST, ADC= 2.757" and this will also (very soon) change 
for sure.So, I need to read the whole Modem answer (always bigger than 80 
chars/bytes) and then extract the useful data part of it.
Cheers,FS
On Tuesday, December 13, 2022 at 8:02:14 AM UTC flyway38 wrote:

Hello Rob,
Thank you very much for your input.Will check your snippet code later on 
today.Then will back here with the outcome.
Thank you,
Cheers,Filipe Santos

On Tuesday, December 13, 2022 at 7:58:21 AM UTC flyway38 wrote:

Hello Vasile,
Thank you very much for your help.Will test your code later on today.
Have found already that the problem seems to be related to that 80byte limit in 
array vars.Particularly speaking about the RX buffer;if 
(defined(SERIAL_RCVBUFSIZE) == FALSE) then
   const   SERIAL_RCVBUFSIZE  = 80  -- 64 is the default size of receive buffer
end ifSo, maybe your code will overcome this issue.Thank you.
Cheers,FS
On Tuesday, December 13, 2022 at 5:53:04 AM UTC vasile wrote:

Assuming from received garbage you need only this: S_GA6-B_MODEM_SMS_TEST, ADC= 
2.757V_E, where S=start char, E=end char, 
meaning 35 characters of interest including start and end
you have to:1. make  a copy of your serial_hv_int_cts.jal library and rename it 
serial_hv_int_cts_modified.jal2. in the serial_hv_int_cts_modified.jalmodify 
the  _serial_receive_interrupt_handler() with the one below
3. in the main program include the modified library and:

var bit datapresent = falsevar byte chars_ok = 0 
var byte chars_sent = 35
include serial_hw_int_cts_modified
serial_hw_init()
forever loop
 if datapresent then ; read _serial_rcvbuf [i]  for i = 0 to 35 and print your 
relevant string
 end ifend loop

This should work if you will be careful with the position in the buffer ( not 
tested for your string, but tested in the past for other stuff).It might work 
without counting chars as well, but it needs to detect the end char E instead 
of counting chars ( even if counting is more safe).


procedure  _serial_receive_interrupt_handler() is; to be replaced in 
serial_hv_int_cts_modified.jal---------------------------------------------------------------------
   pragma interrupt

   var  byte  x
   if  (PIR1_RCIF == TRUE)  then                -- UART receive interrupt
      
      if ((RCSTA_OERR == TRUE) | (RCSTA_FERR == TRUE)) then  -- frame/overr 
error
         x = RCREG                              -- flush hardware buffer
         while RCSTA_OERR == TRUE loop          -- overrun state
            RCSTA_CREN = FALSE                  -- disable UART
            RCSTA_CREN = TRUE                   -- re-enable UART
            x = RCREG                           -- \  flush hardware buffers
            x = RCREG                           -- /
         end loop                               -- until no more overrun
         _serial_offsetrcvtail = 0              -- \  flush circular buffer
         _serial_offsetrcvhead = 0              -- /
         serial_ctsinv = FALSE                  -- ensure CTS true

      else
         x = RCREG                                      -- data without errors

         if (! datapresent) then
          _serial_rcvbuf[_serial_offsetrcvhead] = x
           if x == "S" then ; relevant char found
;         if chars_ok == 0 then
            _serial_offsetrcvhead = 1
             chars_ok = 1
            else
            if (chars_ok > 0) then
               _serial_offsetrcvhead = _serial_offsetrcvhead + 1
               chars_ok = chars_ok + 1         
                  if (chars_ok == chars_sent) then
               datapresent = true
               chars_ok = 0
               _serial_offsetrcvhead = 0
                  end if
                end if
             end if
          end if -- datapresent 
      end if
   end if

end procedure

On Mon, Dec 12, 2022 at 9:29 PM flyway38 <[email protected]> wrote:

Hello Vasile and Rob,
Thank you for your feedback.
@Vasile;1 - No. It will depend on the number of SMS received by the modem. But 
only need the 2nd line of each SMS. This answers your #2.2 - Yes. But this is 
still a test information received as an SMS. Later on, it will be different and 
much probably bigger in nr of chars...
@Rob
Am not sure on how to use that and copy the data from the buffer to a large 
array library.Maybe some sample code would help.Heres my receiving code, 
anyways:
   for 50 using Index loop
      fRtn = serial_hw_read(char)
      if fRtn then
         Received[Index] = char
      end if
   end loop
   --
   fRtn=FALSE
   --
   for 74 using Index loop
      if (Received[Index]=="+"
         & Received[Index+1]=="C"
         & Received[Index+2]=="M"
         & Received[Index+3]=="G"
         & Received[Index+4]=="L"
         & Received[Index+5]==":") then
         fRtn=TRUE
      end if
   end loop
Thank you guys for your help.Cheers,
FS
On Monday, December 12, 2022 at 6:48:31 PM UTC [email protected] wrote:

Hi Filipe,
You should use the large array library and copy the data from the buffer (which 
can then be smaller) to the large array. 
Met vriendelijke groet,Rob Jansen From: [email protected] 
<[email protected]> on behalf of vsurducan <[email protected]>
Sent: Monday, December 12, 2022 7:37:34 PM
To: [email protected] <[email protected]>
Subject: Re: [jallib] Re: Variable Table Append1.The length of your message is 
always the same?2. From the whole message, receiving the part GA6...2.757V 
would be sufficient?



On Mon 12 Dec 2022, 7:59 PM flyway38 <[email protected] wrote:

Hey all,
Am back on this subject.My project had some halts but is back on track.
Right now am back to SMS receiving subject.Have already reached the conclusion 
that I can receive more parts of message if make RX buffer bigger...
Here's the relevant part of serial_hw_int_cts LIB;
if (defined(SERIAL_RCVBUFSIZE) == FALSE) then
   const   SERIAL_RCVBUFSIZE  = 80  -- 64 is the default size of receive buffer
end if
Problem is 80 is the maximum I can use in this code (PIC16F19176).How can I get 
more of the received data?
Here's the data I should read:+CMGL: 1,"REC 
READ","+351000000000",,"2022/12/08,17:10:12+00"
GA6-B MODEM SMS TEST, ADC= 2.757V
+CMGL: 2,"REC READ","+351....
The green part is what I can get using RX buffer at 80.My goal is to get the 
full line:GA6-B MODEM SMS TEST, ADC= 2.757V 

Any help will be appreciated.Thank you very much.
Kind regards,Filipe Santos.
On Sunday, December 4, 2022 at 3:53:30 PM [email protected] wrote:

Hi Vasile,
If you want to use the serial library with interrupt just check the sample 
files that are created for it. I have used the library quite often without any 
problems.
Kind regards,
Roib
Van:[email protected] <[email protected]> namens flyway38 
<[email protected]>
Verzonden: zondag 4 december 2022 15:59
Aan: jallib <[email protected]>
Onderwerp: Re: [jallib] Re: Variable Table AppendHey Vasile and Rob,
@Vasile,Yes, +CMGL appear in my Received[50] buffer. But not the "Test" and 
"OK" parts... yet.Am currently working on that. Will check that" 
_serial_receive_interrupt_handler" to see if am able to use it (if not too 
complex... some usage samples would be nice).
Thank you for your input.

@Rob, Have checked those LIBs, but too complex for me.Don't have much time to 
interpret all that code and adapt to my code.Any samples of usage easier to 
adapt?
Thank you anyways.
Cheers,Filipe Santos.
On Sunday, December 4, 2022 at 8:24:49 AM UTC [email protected] wrote:

Hi Filipe,
Nice that this works. 
As said earllier you can have a look at the bluetooth_hc05.jal library. Some 
procedures and functions there perform the actions you are tryiing to achieve.
Kind regards,
Rob

Van:[email protected] <[email protected]> namens flyway38 
<[email protected]>
Verzonden: zaterdag 3 december 2022 21:00
Aan: jallib <[email protected]>
Onderwerp: Re: [jallib] Re: Variable Table AppendHi Rob,
As said, It would be enough to get a small part; "+CMGL" then it will be 
another battle to reach the message part of the SMS.For now am finally 
successfully, again using "brute force" on reading serial port:
var byte Received[50]
function CheckComms_CMGL() return bit is
   Index = 0
   --
   while Index < 50 loop
      fReturn = serial_hw_read(char)
      Received[Index] = char
      Index=Index+1
   end loop
   --
   fRtn=FALSE
   --
   for 45 using Index loop
      if (Received[Index]=="+"
         & Received[Index+1]=="C"
         & Received[Index+2]=="M"
         & Received[Index+3]=="G"
         & Received[Index+4]=="L") then
         fRtn=TRUE
      end if
   end loop
   return fRtn
end function
Anyways, am starting to get the hang of this "battle"I think that will manage 
to get the message ("Test") part of this SMS answer from the modem.If not, will 
back here... :D
Thank you all for the help.You guys are great.Cheers,
Filipe Santos.



On Saturday, December 3, 2022 at 7:51:27 PM UTC [email protected] wrote:

Hi Filipe ,
I think the message is too long before OK is received since the whole message 
should be stored. For a PIC16 the buffer can at most be 80 bytes. You can use 
the large array library if you need a larger buffer.
Met vriendelijke groet,Rob Jansen From:[email protected] 
<[email protected]> on behalf of flyway38 <[email protected]>
Sent: Saturday, December 3, 2022 7:58:35 PM
To: jallib <[email protected]>
Subject: Re: [jallib] Re: Variable Table Append Hi Vasile,
I want to read the answers from modem just like Hyperterminal or Termite 
does.As example:This the AT command to question modem for new SMS 
received:AT+CMGL="ALL"In my case I know theres a SMS in memory, so modem 
answers to that command:+CMGL: 1,"REC 
READ","+351000MyNrHere000",,"2022/12/03,18:10:22+00"
Test

OKCan see all this in Hyperterminal happening, but PIC doesn't get that answer 
from modem...
I need to read this answer from modem, and then extract the message "Test" part 
of modem answer
It would be enough to read the "+GMGL: 1" from the modem's answer.... but no 
luck so far.Thanks anyway for the input.
Regards,Filipe Santos

On Saturday, December 3, 2022 at 6:41:30 PM UTC vasile wrote:

I'm not sure if this is your case, but if you need to identify the AT during a 
string reception, but prior to store the string in any buffer, I think the 
library will not work as is...

On Sat 3 Dec 2022, 7:23 PM flyway38 <[email protected] wrote:

The oddest thing here, is it seems only my PIC doesn't pick up the answers from 
the modem, except the "OK" but even these fail sometimes to get picked up by 
the PIC.I have a derived connection from that serial port using an FTDI cable 
connected to my computer, and can check what is going on using the 
Hyperterminal App or even the Termite App and these apps can see the answers 
from the modem.... crazy stuff going on here...

On Saturday, December 3, 2022 at 4:48:16 PM UTC flyway38 wrote:

Hi Rob,
Thanks for that help.But, right now am concerned about the other acknowledge 
messages... "OK" is now working good enough here.
And it seems serial_hw_int_cts LIB is not making any difference.Maybe am not 
taking full advantages from it.
Cheers,
FS
On Saturday, December 3, 2022 at 2:22:04 PM UTC [email protected] wrote:

Hi Filipe,
In the bluetooth_hc_05.jal library I made a function that reads a string 
including OK but returns only the string (without the OK). The code is as 
follows:
-- Wait for data from the module and copy all data to the bluetooth receive-- 
buffer until 'OK' is found. If 'OK' is found the function returns TRUE.-- The 
number of bytes in the receive buffer is stored in the global variable-- 
bluetooth_hc05_bytes_received and the read pointer is reset.-- Note that 'OK' 
is not stored in bluetooth_hc05_bytes_received but the-- carriage return and 
line feed are. function _bluetooth_hc05_wait_and_get_data_ok() return bit is
   var dword timeout = 0   var byte index = 0   var byte character   var bit 
found_o  = FALSE   var bit found_ok = FALSE      bluetooth_hc05_bytes_received 
= 0   _bluetooth_hc05_read_pointer = 0   while (index < 
BLUETOOTH_HC05_RECEIVE_BUFFER_SIZE) & !found_ok &         (timeout < 
_bluetooth_hc05_wait_time) loop
      if _bluetooth_hc05_serial_read(character) then         
bluetooth_hc05_receive_buffer[index] = character         index = index + 1      
   timeout = 0         if (character == "O") then            found_o = TRUE     
    elsif (character == "K") & found_o then            found_ok = TRUE          
  -- Bytes received is everything except for 'OK'.            
bluetooth_hc05_bytes_received = index - 2         else            -- It was not 
'OK', reset.            found_o  = FALSE            found_ok = FALSE         
end if       end if
      timeout = timeout + 1      _usec_delay(100)   end loop
   return found_ok
end function
Kind regards,
RobVan:[email protected] <[email protected]> namens flyway38 
<[email protected]>
Verzonden: zaterdag 3 december 2022 15:11
Aan: jallib <[email protected]>
Onderwerp: Re: [jallib] Re: Variable Table AppendHi Rob,
Thank you for that info.The OK answer from the modem, am already getting, but 
using "like brute force" serial readings...
function CheckComms_OK() return bit is
   timer = 0
   Received[0] = "X"
   Received[1] = "X"
   --
   while (Received[0]!="O" | Received[1]!="K") & timer < 60_000 loop
      fReturn = serial_hw_read(char)
      Received[0] = char
      fReturn = serial_hw_read(char)
      Received[1] = char
      --
      timer = timer + 1
   end loop   --    fReturn = FALSE
   --
   if (Received[0]=="O" & Received[1]=="K") then
      return TRUE
   else
      return FALSE
   end if
end function
But other answers from the modem are still a no go.Example: "+CMGS" from an 
AT+CMGS="phone nr"....Will need this because will need to also receive SMS with 
this PIC.
Will check that LIB you mentioned.Thank you.
Cheers,FS
On Saturday, December 3, 2022 at 1:43:23 PM UTC [email protected] wrote:

Hi Filipe, Vasile,
I would recommend using the serial libraries that work on an interrupt basis 
like serial_hw_int_cts.jal. Using this library with a big enough buffer will 
prevent that you miss any characters.
I used this - using AT commands - in the libraries bluetooth_hc05.jal and 
bluetooth_hc06.jal as to be able to check if an OK was received after an AT 
command.
Kind regards,
Rob


Van:[email protected] <[email protected]> namens vsurducan 
<[email protected]>
Verzonden: zaterdag 3 december 2022 11:09
Aan: [email protected] <[email protected]>
Onderwerp: Re: [jallib] Re: Variable Table AppendOh, understood. Reading needs 
to have priority. Use interrupts then...or avoid using any delays in your 
actual code.A sms has not an instant execution ( most of the time). So using 
low speed transmission/reception it might be a working solution.

On Sat, Dec 3, 2022 at 11:53 AM flyway38 <[email protected]> wrote:

Hello Vasile,
Am not using serial lib with interrupts.Maybe I need to use that lib.Current 
problem is GSM modem seems to acknowledge (ex: "OK") faster than my code can 
read it...A simple "AT" seems to get the "OK" faster than I can read.And I want 
to get all acknowledges... to not step to next AT command before having sure of 
"OK" response from the modem.All my AT commands to send an SMS are working ok, 
if no checking for the acknowledges...
Big battle here under going. :DThank you for your input.
Cheers,FS

On Saturday, December 3, 2022 at 6:18:47 AM UTC vasile wrote:

Fellipe, I'm curious if this will work fo you. I was never able to use the 
serial library (interrupts) as is without a slip of one char in received 
characters order.  I've counted chars to solvethe problem....Depending on your 
GSM transciever, some delays may be needed between chars and some longer delays 
between AT commands and chars.

On Fri 2 Dec 2022, 9:25 PM flyway38 <[email protected] wrote:

Hello Rob,
Thank you very much.This will help alot.Cheers.
FS

On Friday, December 2, 2022 at 7:21:46 PM UTC [email protected] wrote:

Hi Filipe,
One correction. if you get a timeout then there is no string (or only a partial 
string) so you have to check if the timer has reached the timeout after the 
repeat.
Kind regards,
Rob
Van:[email protected] <[email protected]> namens Rob CJ 
<[email protected]>
Verzonden: vrijdag 2 december 2022 20:20
Aan: [email protected] <[email protected]>
Onderwerp: Re: [jallib] Re: Variable Table AppendHi Filipe,
Some sample code. I did not test it (or compiled it) but I assume you get the 
idea.
const word MAX_TIMEOUT = 20_000const byte MAX_BUFFER = 20const byte CR = 
0x0Dconst byte LF = 0x0A
var word timer = 0var byte my_buffer[MAX_BUFFER]var byte index = 0var byte 
character = 0
-- Read a string.repeat    if serial_hw_data_available() then       character = 
serial_hw_data       my_buffer[index] = character       index = index + 1   end 
if     timer = timer + 1    _usec_delay(100)until (index == MAX_BUFFER) | 
(character == CR) | (character == LF) | (timer == MAX_TIMEOUT)

The string is then in my_buffer (including a CR or LF). 
Kind regards,
Rob


Van:[email protected] <[email protected]> namens flyway38 
<[email protected]>
Verzonden: vrijdag 2 december 2022 19:23
Aan: jallib <[email protected]>
Onderwerp: Re: [jallib] Re: Variable Table Append Hi Rob,
Thanks for your input.Could you post some sample code please?I think am missing 
some important details...How can I define a variable buffer?Because this seems 
not work: var byte received[]=""...
Am also struggling to read my modems relies to AT commands...It seems my code 
is working correctly and after sending the AT command, the readings from serial 
port seems to point to characters from the sent command...Getting crazy here 
while in battle with the code... :DThank you very much.
Best regards,Filipe Santos

On Friday, December 2, 2022 at 6:06:56 PM UTC [email protected] wrote:

Hi Filipe,
You just read the data from a serial port, add that to your local variable 
buffer, increment an index pointer with each received character and read until 
you receive either a Carriage Return or a Line Feed (one of the will do). I 
normally also add a timeout to the read function so that it does not hang when 
nothing is received.
Kind regards,
rob


Van:[email protected] <[email protected]> namens flyway38 
<[email protected]>
Verzonden: vrijdag 2 december 2022 12:38
Aan: jallib <[email protected]>
Onderwerp: [jallib] Re: Variable Table Append Am trying to mimic a 
"Read_String" from serial port.Any ideas?
Thank you.
Regards,FS

On Friday, December 2, 2022 at 9:42:34 AM UTC flyway38 wrote:

Hello all,
Have searched for it but haven't found anything useful.Need to know a good way 
of appending a variable table.Starting from a MyVar[] = "", then just append 
data to it...Also what happen to website: https://justanotherlanguage.org/ 
?Cannot connect to that website.Thank you very much.
Kind regards,Filipe Santos.



-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/2251b524-7658-42f7-970b-a6817d6709e1n%40googlegroups.com.



-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/37733abd-20ed-4130-8aa2-03381fb3ac1an%40googlegroups.com.


-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/GVXP195MB16374C5EDB5CFD44C5580F26E6179%40GVXP195MB1637.EURP195.PROD.OUTLOOK.COM.



-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].


To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/1af55b5d-54bb-4ea7-a2d6-21574ba3ea7an%40googlegroups.com.




-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/bfa9ccd1-54c6-47d1-9535-8272eb0cca90n%40googlegroups.com.



-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/CAM%2Bj4qsrRDXRbaHZi8f3zPGVVje5YzHQn1yzXzQvLBE5NxD5_w%40mail.gmail.com.



-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/6748d6c6-d1a3-4f0c-82ea-baf9410375d0n%40googlegroups.com.




-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].


To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/25d2f2fd-6cd5-4cff-bb67-702f99abf6d3n%40googlegroups.com.




-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/3770592d-6043-4477-97b8-979aa0cb8ec4n%40googlegroups.com.



-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/ec83958f-0310-422c-9af7-bc8daebc7cedn%40googlegroups.com.



-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/e7800334-4d2b-4475-9439-a52a3a53c5a6n%40googlegroups.com.



-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/329b882c-7df2-4507-8f4a-cde2b95000c4n%40googlegroups.com.



-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/CAM%2Bj4quyOrLijKuZJvkGt8agmWYwRbad8iehBL_aDrx6jYcsbQ%40mail.gmail.com.



-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].


To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/addeac94-0a13-45d3-a0fb-768e263c6ed0n%40googlegroups.com.






-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/8182fc60-7d42-48a9-b605-93b381593991n%40googlegroups.com.
  

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/2091036278.922760.1670922080525%40mail.yahoo.com.

Reply via email to